言語:Microsoft Visual Studio 2008
データベース:SQL Server 2005 非接続型のデータアクセスです。
現在,上記環境で.netを勉強し始めたところです。
そこで簡単なプログラムからと思いDataGridViewを学習し始めたのですがすぐにつまずいてしまいました。
色々調べたのですが思うようにいかないので,アドバイスをいただければと思います。
やりたいことは
(1)フォーム1のDataGridViewコントロールにデータソースをバインドしてデータを表示する。
(2)フォーム1の更新ボタン押下時に、DataGridViewで編集した内容をデータベースに反映する。
つまづいているのは(2)です。
http://japan.internet.com/developer/20070522/26. …
を参考にしたのですが、どうコーディングすればよいかわかりません。
自作したコードは下記の通りです。
Private Sub frmDataGridViewTest_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strsql As String
Call DBConnect()'---DB接続
strsql = "SELECT ID, 名称, 型式 FROM テーブル ORDER BY ID"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim ds As DataSet = New DataSet()
dataadapter.Fill(ds, "テーブル")
dgrview.DataSource = ds
dgrview.DataMember = "テーブル"
Call Disconnect()'---DB切断
End Sub
Private Sub BTN_更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_更新.Click
'---ここに何か必要なのでしょうか?????
このままだとdataadapterとdsに宣言がないとエラーになります。
'---DataGridViewコントロールでの変更をデータベースに戻す
Dim sqlCmdBuilder As New SqlCommandBuilder(dataadapter)
sqlCmdBuilder.GetUpdateCommand()
dataadapter.Update(ds.Tables("テーブル"))
Call Disconnect()'---DB切断
End Sub
No.1ベストアンサー
- 回答日時:
DataSetとDataTableはフォームクラスの変数にしましょう
アダプタは Form_Load
Dim strsql As String
Call DBConnect() '---DB接続
strsql = "SELECT ID, 名称, 型式 FROM テーブル ORDER BY ID"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
の部分が必要になります
この回答への補足
早々のお返事ありがとうございます。
会社が週末休みだったのでお返事遅れ申し訳ありません。
さて、回答についてですが
>DataSetとDataTableはフォームクラスの変数にしましょう
>アダプタは Form_Load
の意味がわからなかったのですが、frmDataGridViewTest_Loadはそのままで、BTN_更新_Clickだけ下記のようになるということでよろしかったでしょうか?
Private Sub BTN_更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_更新.Click
Dim strsql As String
Call DBConnect() '---DB接続
strsql = "SELECT ID, 名称, 型式 FROM テーブル ORDER BY ID"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim ds As DataSet = New DataSet()
'---DataGridViewコントロールでの変更をデータベースに戻す
Dim sqlCmdBuilder As New SqlCommandBuilder(dataadapter)
sqlCmdBuilder.GetUpdateCommand()
dataadapter.Update(ds.Tables("テーブル"))
Call Disconnect() '---DB切断
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文(テーブル項目名が特殊文...
-
VBとACCESSを接続したい
-
【ACCESS】リレーションを組ん...
-
select文の戻り値を変数に格納...
-
テーブルというグローバル変数
-
accessのフォームを使ってテー...
-
ACCESSテーブルを RecordSet以...
-
DBの読み込み順について
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
VBAでActiveDirectoryのユーザ...
-
ListView 項目の選択/選択解除...
-
【Excel】指定したセルの名前で...
-
【Excel VBA】先頭の「0」飛び...
-
ExcelVBAを使って、値...
-
array関数で格納した配列の型を...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
テキストボックスのvalueとtext...
-
count(*)で取得した値をJAVAの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文(テーブル項目名が特殊文...
-
select文の戻り値を変数に格納...
-
【ACCESS】リレーションを組ん...
-
ACCESSテーブルを RecordSet以...
-
access コンボボックス初期表示...
-
DBの読み込み順について
-
異なるデータベースでのSELECT ...
-
VBとACCESSを接続したい
-
外部キーのリレーションが設定...
-
テーブルというグローバル変数
-
ASP.NET:複数結合テーブルのデ...
-
accessのフォームを使ってテー...
-
ASPとAccessとの接続について
-
教えてアクセス2007!「在...
-
Perlで変数内の日本語が文字コ...
-
ACCESSで伝票をつくる方法
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
おすすめ情報