- - PR -
VB.NETのSqlDataAdapterクラスのUpdateメソッドについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-04-02 14:20
質問です。今、VB.NETでSqlサーバのデータをプログラムから更新したいのですが、うまくいきません。
具体的には、Windowsフォームから画面入力されたデータをDataSet型の変数に格納して、その格納されたデータをそっくりそのままDBに更新したいのです。 SqlDataAdapterクラスのUpdateメソッドを用いるとうまくいくかと思い、いろいろ試したのですがだめでした。 よい方法をお教えください。 | ||||
|
投稿日時: 2004-04-02 14:33
Updateメソッドを使うんですよ。 どんなことを試して、どのような結果になりましたか? 急いで結果が欲しいのはわかりますが、それならばなおのこと、具体的に、何を見て、どのようにして、どのような結果になったかを書いてください。 この書き方だと、SQL Serverとの接続がうまくいっていないのか、SQLの書き方がまずいのか、パラメータの設定が悪いのか、DataSetへのデータ登録の仕方がまずいのか、etc... | ||||
|
投稿日時: 2004-04-02 14:34
>いろいろ試したのですが
具体的にあげていただかないと、どこが間違っているのか分かりませんので指摘しようがないのですが。 | ||||
|
投稿日時: 2004-04-02 16:04
ずさんな投稿ですみません。
そしてご指摘ありがとうございます。 以下のソース等を試していました。 その結果として 「'System.InvalidOperationException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : 更新で TableMappings['Table']、または DataTable 'Table' が見つかりませんでした。」 というメッセージがはき出されました。 DataSetにDataTableを追加しているのになぜDataTableが見つからないのかわかりません。 以上です。 もし何かわかる方がいらっしゃいましたら不足点のご指摘などお願いします。 Private Sub UPDATE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UPDATE.Click '画面入力されたデータをDataTableに格納 Dim inputDt As New DataTable inputDt = DataGrid1.DataSource Dim ds As New DataSet ds.Tables.Add(inputDt) Dim _DbUpdate As clsDbUpdate = New clsDbUpdate _DbUpdate.DbUpdate(ds) End Sub Public Sub DbUpdate(ByVal ds As DataSet) Dim cn As New SqlClient.SqlConnection Dim da As New SqlClient.SqlDataAdapter '接続文字列を格納 cn.ConnectionString = "Server=ukurere;Trusted_Connection=yes;database=WeekRateDB" '接続開始 cn.Open() 'DBを更新 da.Update(ds) '接続終了 cn.Close() End Sub | ||||
|
投稿日時: 2004-04-02 16:42
えーと、どっちに書き込めばいいのかな・・・
DbUpdate()内の [i]da.Update(ds)[i] の直前にブレークポイントを設定し、dsの中身を見てみてください。 本当にテーブルがないのかどうか。 あと、DbUpdate()内のdaにはUpdateCommand等は指定しているんですか? |
1