C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[18]: DataGridViewの行データを、textboxに表示


(過去ログ 100 を表示中)

[トピック内 20 記事 (1 - 20 表示)]  << 0 >>

■59597 / inTopicNo.1)  DataGridViewの行データを、textboxに表示
  
□投稿者/ ある (1回)-(2011/06/01(Wed) 16:08:17)

分類:[.NET 全般] 

VB2008.netを使用して開発しております。

Form1でDataGridViewで選択した行データ(mdb)を、Form2にある複数のtext.boxに表示したいのですが
やり方がわかりません。

どうすればいいでしょうか?
引用返信 編集キー/
■59599 / inTopicNo.2)  Re[1]: DataGridViewの行データを、textboxに表示
□投稿者/ ない (1回)-(2011/06/01(Wed) 16:19:38)
No59597 (ある さん) に返信

> Form1でDataGridViewで選択した行データ(mdb)を、Form2にある複数のtext.boxに表示したいのですが
> やり方がわかりません。

何をやりたいのか具体的でないので、以下について整理願います。

・DataGridViewで選択した行データの抽出方法が分からないのか?
・mdbとは何か(MS AccessのMDB?)
・Form2に表示させるデータは、DataGridView上にすべてあるのか?
・DataGridViewの行からデータを抽出できたとして、これをForm2に表示する方法が分からないのか?
・Form1からForm2を参照することは可能か?
引用返信 編集キー/
■59611 / inTopicNo.3)  Re[2]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (2回)-(2011/06/02(Thu) 08:56:06)
No59599 (ない さん) に返信

コメントありがとうございます。

> ・DataGridViewで選択した行データの抽出方法が分からないのか?
わかりません

> ・mdbとは何か(MS AccessのMDB?)
はい。AccessのMDBファイルです

> ・Form2に表示させるデータは、DataGridView上にすべてあるのか?
すべてあります。

> ・DataGridViewの行からデータを抽出できたとして、これをForm2に表示する方法が分からないのか?
抽出してきたデータをForm2に表示する方法がわかりません

> ・Form1からForm2を参照することは可能か?
可能です。


よろしくお願いします
引用返信 編集キー/
■59613 / inTopicNo.4)  Re[3]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (1回)-(2011/06/02(Thu) 10:12:41)
No59611 (ある さん) に返信

'選択行
Dim r as DataGridViewRow = Me.DatagridView.CurrentRow

Dim Form2 As New Form2
With Form2
  .TextBox1.Text = r.Cells("Columns1").Value
  .TextBox2.Text = r.Cells("Columns2").Value
  .TextBox3.Text = r.Cells("Columns3").Value
  .TextBox4.Text = r.Cells("Columns4").Value
  .TextBox5.Text = r.Cells("Columns5").Value
  .TextBox6.Text = r.Cells("Columns6").Value
  .Show
End With
引用返信 編集キー/
■59614 / inTopicNo.5)  Re[4]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (3回)-(2011/06/02(Thu) 10:27:38)
No59613 (わっくん さん) に返信
ありがとうございます。
その場合は、Form2にDataGridViewがないんでMe.DatagridView.CurrentRowがform2のメンバでないというエラーが出るんですが
引用返信 編集キー/
■59615 / inTopicNo.6)  Re[5]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (2回)-(2011/06/02(Thu) 10:41:32)
No59614 (ある さん) に返信

> その場合は、Form2にDataGridViewがないんでMe.DatagridView.CurrentRowがform2のメンバでないというエラーが出るんですが


Form2から参照しているんですね。
先ほどの記述は、Form1からForm2を開く場合です。


Form2から参照の場合は、

'選択行
Dim r as DataGridViewRow = Form1.DatagridView.CurrentRow

With Me
  .TextBox1.Text = r.Cells("Columns1").Value
  .TextBox2.Text = r.Cells("Columns2").Value
  .TextBox3.Text = r.Cells("Columns3").Value
  .TextBox4.Text = r.Cells("Columns4").Value
  .TextBox5.Text = r.Cells("Columns5").Value
  .TextBox6.Text = r.Cells("Columns6").Value
  .Show
End With

ただし、Form1がNewでShowされている場合は、Ownerの指定が必要になります。

引用返信 編集キー/
■59616 / inTopicNo.7)  Re[6]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (3回)-(2011/06/02(Thu) 10:42:44)
No59614 (ある さん) に返信

With Me
  .TextBox1.Text = r.Cells("Columns1").Value
  .TextBox2.Text = r.Cells("Columns2").Value
  .TextBox3.Text = r.Cells("Columns3").Value
  .TextBox4.Text = r.Cells("Columns4").Value
  .TextBox5.Text = r.Cells("Columns5").Value
  .TextBox6.Text = r.Cells("Columns6").Value
  .Show ← これはいりません。
End With

引用返信 編集キー/
■59617 / inTopicNo.8)  Re[7]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (4回)-(2011/06/02(Thu) 11:10:14)
No59616 (わっくん さん) に返信

やはり
'DatagridView' は 'WindowsApplication1.Form1' のメンバではありません。
というエラーが出てきます。
ただ今必至に調べ中です。
引用返信 編集キー/
■59618 / inTopicNo.9)  Re[8]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (5回)-(2011/06/02(Thu) 11:12:57)
No59617 (ある さん) に返信

> 'DatagridView' は 'WindowsApplication1.Form1' のメンバではありません。
> というエラーが出てきます。
> ただ今必至に調べ中です。

'選択行
Dim r as DataGridViewRow = Form1.DatagridView.CurrentRow
のDatagridViewはあるさんがつけた名前になっていますか?
おそらく変更していないのであれば、
DatagridView1という名前のはずです。
引用返信 編集キー/
■59620 / inTopicNo.10)  Re[8]: DataGridViewの行データを、textboxに表示
□投稿者/ ない (2回)-(2011/06/02(Thu) 11:15:00)
No59617 (ある さん) に返信

> やはり
> 'DatagridView' は 'WindowsApplication1.Form1' のメンバではありません。
> というエラーが出てきます。

まさか、Form1にあるDataGridViewの名前が'DatagridView'ではなくて別の名前だった、なんていう話ではないですよね?
'DatagridView'の箇所はForm1上のDataGridViewコントロールの名前になっているんですよね?
引用返信 編集キー/
■59624 / inTopicNo.11)  Re[9]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (5回)-(2011/06/02(Thu) 11:54:57)
ありがとうございます。

名前が間違ってましたll
お恥ずかしい。
データを抽出することはできたんですが、行内にnull値がある場合text.boxには表示できずエラーが出てしまいます。
if文でnullの場合""を表示するという方法しかないでしょうか?
引用返信 編集キー/
■59625 / inTopicNo.12)  Re[10]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (7回)-(2011/06/02(Thu) 12:04:16)
No59624 (ある さん) に返信

> if文でnullの場合""を表示するという方法しかないでしょうか?

私は常に以下の様に記述しております。
If Not IsDBNull(r.Cells("Columns1").Value) Then Me.TextBox1.Text = r.Cells("Columns1").Value


引用返信 編集キー/
■59633 / inTopicNo.13)  Re[11]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (7回)-(2011/06/02(Thu) 13:05:34)
No59625 (わっくん さん) に返信

ありがとうございます。
できました!

このtext.boxに表示されたデータ(又は加筆で変更されたデータ)を「更新」というボタンで
Accessに上書き保存したいのですが、いろいろ調べているのですが簡単なやり方がわかりません。

適当なやり方がありましたら
教えていただけると幸いです
引用返信 編集キー/
■59634 / inTopicNo.14)  Re[12]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (9回)-(2011/06/02(Thu) 13:11:27)
No59633 (ある さん) に返信

> このtext.boxに表示されたデータ(又は加筆で変更されたデータ)を「更新」というボタンで
> Accessに上書き保存したいのですが、いろいろ調べているのですが簡単なやり方がわかりません。

簡単というか、一般的に、

Dim Cn As New Oledb.OleDbConnection(接続文字)
Dim Cm As New Oledb.OleDbCommand(UPDATE文, Cn)
Cm.ExecuteNonQuery()

Form1のDatagridviewの再読み込み。

これ以外方法はありません。
UPDATE文の生成方法くらいは判りますよね?
決して手抜きはできませんよw
引用返信 編集キー/
■59635 / inTopicNo.15)  Re[13]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (8回)-(2011/06/02(Thu) 13:38:25)
No59634 (わっくん さん) に返信

接続文字っていうのがよくわからないんですが
UPDATA文は何とかできると思います(できるかわからないけど)
引用返信 編集キー/
■59636 / inTopicNo.16)  Re[14]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (10回)-(2011/06/02(Thu) 13:44:26)
No59635 (ある さん) に返信

Datagridviewに値を読みこむ時はどうしましたか?
デザイナー画面からデータソース構成ウィザード画面でデータベースを選択しましたか?
それとも
Cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & System.IO.Path.Combine(My.Settings.DirectoryPath, mdbName) & ";Jet OLEDB:Database")
こんな事しましたか?

この手の事で詰まっているなら本を買った方が効率良いですよ。
引用返信 編集キー/
■59637 / inTopicNo.17)  Re[15]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (9回)-(2011/06/02(Thu) 14:18:46)
No59636 (わっくん さん) に返信

textboxの値をupdataする方法がわかりません

引用返信 編集キー/
■59638 / inTopicNo.18)  Re[16]: DataGridViewの行データを、textboxに表示
□投稿者/ わっくん (11回)-(2011/06/02(Thu) 14:36:59)
No59637 (ある さん) に返信

> textboxの値をupdataする方法がわかりません

mdbのテーブルのUPDATEを行うには、
まずmdbをOpenしなければいけません。
そのために、コネクションを生成する必要があり、
Dim Cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ここにmdbファイルのパスを記述;Jet OLEDB:Database")
このような宣言が必要になります。

その上でSQLを実行する。
Dim Cm As New Oledb.OleDbCommand(UPDATE文, Cn)

UPDATE文は
Dim UPDATE文 As String = "UPDATE テーブル SET 名前 = '" & Me.TextBox1.Text & "', フリガナ = "' WHERE 主キー = '" & Me.TextBox4.Text & "'"
見たいな感じで作ってください。

Cn.Open 'mdbファイルを開く
Cm.ExecuteNonQuery() 'UPDATE文を実行
Cn.Close 'mdbファイルを閉じる

という流れです。

引用返信 編集キー/
■59639 / inTopicNo.19)  Re[17]: DataGridViewの行データを、textboxに表示
□投稿者/ ある (11回)-(2011/06/02(Thu) 15:47:42)
No59638 (わっくん さん) に返信
ありがとうございます。
無事、更新することができました。

しかし、テキストボックスを空欄にして更新しようとすると
フィールド○○には、長さ 0 の文字列を格納できません。というエラーが出ます。

プロパティの変更で何とかならないものかと試行錯誤しております。
引用返信 編集キー/
■59640 / inTopicNo.20)  Re[18]: DataGridViewの行データを、textboxに表示
 
□投稿者/ わっくん (12回)-(2011/06/02(Thu) 15:54:48)
No59639 (ある さん) に返信

> 決して手抜きはできませんよw
の部分です。

テーブルの登録・更新は、結構チェックが必要です。

nullで良いのか、フィールドの型・長さ、など、
また、TextBoxの値をそのまま登録して良いのか?とか
必要に応じてTrimをかけるとか、色々あります。

Cmを実行する時には、SQL文を完全な形で渡してあげなくてはなりません。

例えば、数値型のフィールドにに文字を渡せばエラーとなります。
単なるUPDATEとおもっていっても、やらなければならない事が沢山あります。
がんばってください。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -