VB2005、SqlServer2005環境です。
デザイナ上で、DataTableをドラッグしてやると、自動的に
バインドされたDataGridViewが出てくれるので、その方法で
DataGridViewを1つ設置しました。
このDataGridViewの表の値を変えた時、それを実際のDBのテーブルにも
反映させたいなと思ってます。
これを実現するための方法を教えていただけないでしょうか?
バインドされているので、保存できればそのまま更新されるような
イメージなのですが…その方法がわかりません。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
ビューからだとUpdateやDeleteなど元のテーブル対する操作は自動生成されないようです
フォームに張り付いているデータセットにクエリを追加して
テーブルを操作できるようにします
表示されているテーブルアダプタをアクティブにして データ > 追加 > Queryを実行
SQLステートメントを使用するにチェック で次へ
UPDATE で次へ
ここで クエリビルダ もしくは 直接SQLを編集し『完了』をクリック
フォームに更新用ボタンを配置
そのクリックイベントに
dim row as DataRow
for each row in DS.DaTable.Rows
if row.RowState = DRowState.Modified then
TableAdapter.UpdateQuery( Row("Name"), Row("ID") )
end if
next
といった具合で更新を掛けます
# 変数名などは適宜修正してください
# DS.DaTable.Rows、TableAdapter、Row("Name"), Row("ID")などです
No.3
- 回答日時:
データソースに設定したテーブルをドラッグアンドドロップして作成したのでしょうか?
それならば フォームの上部にバインディングナビゲータが設定されていると思います
ここのフロッピィーディスクのようなアイコンをクリックすると更新(または新規登録)の必要があるデータを更新するようにするためのスケルトンコードが作成されていますよ
このアイコンをクリックしないとデータベースへの反映はなされません
また作成したテーブルに主キーが設定されていない場合も更新がうまくいかない場合もあります
スケルトンコードは
Private Sub MyTable04BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyTable04BindingNavigatorSaveItem.Click
Me.Validate()
' 編集中のセルの編集モードを終了させる
Me.MyTable04BindingSource.EndEdit()
' テーブルアダプターのUpdateメソッドを使ってデータの更新
Me.MyTable04TableAdapter.Update(Me.SampleDBDS2.myTable04)
End Sub
といった具合になっていると思います
上記の例では SampleDBSD2のmyTable04が対象になっています
フォームクラス以外に VB2005が生成した SampleDBDS2というデータセットクラスがあります
回答ありがとうございます。
仰るとおり、ボタンがありますが、更新が出来ない(ボタンを
押下できない)のです。
大事なことを書き忘れていたのですが、ドラッグしたのがビューでした。
この場合はグリッドの値をそのまま反映させるのは難しいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) VB DataGridViewについて 3 2022/06/08 17:20
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) 3つのエクセルをそれぞれのシートのセルに反映させたいときはどうしたらいいでしょうか? 例えば①シート 4 2023/04/25 20:13
- Windows 10 Windows10環境にてWindowsUpdate後の再起動を完全に抑止する方法はございますか? 10 2023/06/16 09:57
- Word(ワード) 表の縦罫線を移動するピッチ 1 2022/10/12 12:24
- その他(Microsoft Office) Excelで時間計算(負) 8 2023/02/26 05:47
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- IT・エンジニアリング ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:29
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
MDBテーブルへの追加変更を教えてください
Visual Basic(VBA)
-
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
-
4
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
5
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
6
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
7
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
8
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
9
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
10
VB.net
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別mdbのテーブルをコピー
-
Accessで宛名ラベルに同一宛先...
-
『列名 '担当者CD' があいま...
-
ACCESS2010 実行時エラー 2766
-
エクセルのテーブルを解除する...
-
他のMDBのテーブルに追加したい
-
CSVファイルのエクスポートでソ...
-
Excel複数シートをaccessへ一括...
-
手動または分散トランザクショ...
-
ACCESSのテーブル名をリストに...
-
VBでコンボボックスとテキスト...
-
SQL文で在庫推移を得る。
-
VBとアクセスでSQL文に変...
-
VB.NETでのAccessテーブルリンク
-
Access2007でアプリケーション...
-
MDBテーブルへの追加変更を教え...
-
[C#] DataGridViewでコンボボッ...
-
DataGridViewで変更した値を反...
-
「テーブルに主キーがありませ...
-
DAOの作成単位について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
WORD VBA プログラム修正をお願...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
DataGridViewに複数テーブルの...
-
他のMDBのテーブルに追加したい
-
エクセルのテーブルを解除する...
-
Excel複数シートをaccessへ一括...
-
手動または分散トランザクショ...
-
SQLを発行とは?クエリの作成と...
-
AccessからExcelへエクスポート...
-
CSVファイルのエクスポートでソ...
-
ACCESS2010 実行時エラー 2766
-
HTMLのテーブルの行数が多くな...
-
ExcelVBAからAccessMDB内のテー...
-
【ADO】「Execute」を使うと...
-
★クリスタルレポートの元になる...
-
DataGridの中身をDataSetにテー...
-
ACCESSのテーブル名をリストに...
-
COBOLのINVALID KEYが理解でき...
おすすめ情報