
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)
-
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
-
4
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
5
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
8
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
9
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
10
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
11
CellEnterイベント仕様について
Visual Basic(VBA)
-
12
値を返さないコード パス
Visual Basic(VBA)
-
13
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
14
VB.net
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ADOレコードセットのプロパティ...
-
Accessでテーブルのデータのみ...
-
COBOLのINVALID KEYが理解でき...
-
SQLを発行とは?クエリの作成と...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
VisualBasic6.0 と SQLServer ...
-
DataGridViewに複数テーブルの...
-
VB.NETでのAccessテーブルリンク
-
VB.NET データセットとADOレコ...
-
Excel複数シートをaccessへ一括...
-
Beanの連携(?)について質問です
-
エクセルのテーブルを解除する...
-
VBとアクセスでSQL文に変...
-
vb ado → vb2005 ado.net変換
-
手動または分散トランザクショ...
-
HTMLのテーブルの行数が多くな...
-
アークタンジェントテーブルの...
-
DAOでフィールドのデータ型を変...
-
★クリスタルレポートの元になる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VBとアクセスでSQL文に変...
-
SQLを発行とは?クエリの作成と...
-
ExcelVBAからAccessMDB内のテー...
-
[C#] DataGridViewでコンボボッ...
-
エクセルのテーブルを解除する...
-
ACCESS2010 実行時エラー 2766
-
CSVファイルのエクスポートでソ...
-
他のMDBのテーブルに追加したい
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
Accessで宛名ラベルに同一宛先...
-
DataGridViewに複数テーブルの...
-
.net 複数の主キーを設定する方法
-
Excel複数シートをaccessへ一括...
-
アクセステーブル、リンクとロ...
-
VB.NETでのAccessテーブルリンク
おすすめ情報