![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
初めて投稿します。
VisualBasic2005、SQL Server2005 EXPRESSで開発を行っております。
初心者なので簡単な内容なのでしょうが、糸口がつかめず思考がストップしています。
DataGridViewに1つのテーブルをバインディングでドラッグアンドドロップし、IDで紐付く別テーブルの名称を1カラム追加しています。
DataGridView上でIDを変更し、それに合わせて名称が変更されます。
変更後の状態をBindingNavigatorの保存ボタンで保存をしたいのですが、次にフォームを開いても変更が反映されていません。
検索結果にも同様の質問と回答があったので試みましたが解決しておりません。
因みにコードは以下です。
Private Sub T_payscheduleBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_payscheduleBindingNavigatorSaveItem.Click
Try
"テーブル名"TableAdapter.Update(MoPDataSet.テーブル名)
Catch ex As Exception
End Try
End Sub
長くなりましたがよろしくお願いします。
No.3ベストアンサー
- 回答日時:
そうなると、#1さんが仰るように、主キーの問題のような気がします。
以下は、DataSet内でTableAdapterを追加して使っている事を前提にしています。DataSetのTableAdapter作成は、次のような癖を持っています。・主キーを持つDataBaseのTableのTableAdapterを追加した場合、初回作成時には、Updateコマンドが自動で追加されます。
・主キーを持たないDataBaseの場合、UpdateコマンドをTableAdapterに手動で追加する必要があります。
・途中から主キーを持たせても、その変更は自動で反映されません。手動で追加します。
ただし手動追加のUpdateコマンドでは、Update(MoPDataSet.テーブル名)タイプのコマンドを作れません(コードを書けば別ですが)。なので一番早いのは、主キーを持たせたのち、該当TableAdapterをいったん削除して、もう一度作り直す事です。
Tableのドラッグアンドドロップ時にはDataBaseに主キーがなく、その時にTableAdapterが、DataSet内に自動生成されたのでは?、と想像しています。
もう一つの可能性は、そのDataGridViewは、選択QueryTableになっています。開発環境が勝手に解釈して、DataSet内に選択QueryTableを生成した可能性もあると思います。選択QueryTableは、Updateできなかったと思います。
ご回答ありがとうございます。
TableAdapterを再作成したら保存が効くようになりました!!
開発開始の段階でこの状態なので、また行き詰りましたら質問を投稿させていただきます。
ddtddtddtさんはじめ、回答をいただいた皆様ありがとうございました。
No.2
- 回答日時:
DataSetはご使用でしょうか?。
もしそうなら、「出力ディレクトリにコピー」のプロパティーが「常にコピーする」になっていないでしょうか?。違うかも知れませんが、初めてDataSetを使ったとき、半日ほど悩んだもので・・・。
あと、「Catch ex As Exception」はやめた方が・・・、と思います。Try~Catchブロックを使うなら、もっと細かく場合わけしないと、不要にデバックが面倒くさくなる気がします。大きなお世話ですが・・・。
ご返答ありがとうございます。
DataSetは使用しています。元々、セーブボタンを押しても名何の反応もなかったので、再度フォームを作り直してみました。
そうすると、セーブボタンを押下したらBindingNavigatorで自動で作成されるソースで動作するようにはなったのですが、今度は”Me.テーブル名TableAdapter.Update(Me.MoPDataSet.テーブル名)”の所で下記のエラーが表示されるようになってしまいました。
”更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。”
何をどう調べればよいのかを調べている状態です。
情報をお持ちでしたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でaccdbファイルのテーブルの...
-
CSVデータの取り込み
-
(ACCESS)複数mdbからのデータ...
-
エクセルからアクセスにインポ...
-
アクセスマクロで、csv データ...
-
ACCESS テーブルに2行目から取...
-
jspのプログラムについて
-
Access2019でフォームから入力...
-
VBSのデータベース操作で、複数...
-
Data Pump で大量データインポ...
-
データを削除しても表領域の使...
-
accessでイベントを中止するよ...
-
INDEXの無効化
-
Viewにインデックスは張れ...
-
カラムの存在チェック
-
SQLでスキーマ名(所有者名)の...
-
検索結果の列数を動的に変更したい
-
異なるスキーマからデータを抽...
-
DELETE文でFROM句を省略した場合
-
大量データの取得処理について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
他ファイルのテーブルの情報を...
-
C#でaccdbファイルのテーブルの...
-
(ACCESS)複数mdbからのデータ...
-
ACCESS テーブルに2行目から取...
-
テーブルのリンク(ACCESS)
-
jspのプログラムについて
-
Accessでボタンを押したらエク...
-
アクセスマクロで、csv データ...
-
画面から入力した値がDBに登録...
-
[PG]AccessVBAでファイルのイン...
-
csvをSQLiteに取り込むと文字化...
-
グループ単位にCSVファイル...
-
アクセス初心者に注意点を教え...
-
Access2019でフォームから入力...
-
VBでCSVデータをMDB
-
ACCESSとエクセルのリン...
-
DataGridViewでの変更保存
-
データ読込時のタイムアウト
-
mdbファイルを試しに開いてみた...
おすすめ情報