- PR -

VB.NETのSqlDataAdapterクラスのUpdateメソッドについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/04/02
投稿数: 3
投稿日時: 2004-04-02 14:20
質問です。今、VB.NETでSqlサーバのデータをプログラムから更新したいのですが、うまくいきません。
具体的には、Windowsフォームから画面入力されたデータをDataSet型の変数に格納して、その格納されたデータをそっくりそのままDBに更新したいのです。
SqlDataAdapterクラスのUpdateメソッドを用いるとうまくいくかと思い、いろいろ試したのですがだめでした。
よい方法をお教えください。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-02 14:33
引用:

未記入さんの書き込み (2004-04-02 14:20) より:

SqlDataAdapterクラスのUpdateメソッドを用いるとうまくいくかと思い、いろいろ試したのですがだめでした。


 Updateメソッドを使うんですよ。
 どんなことを試して、どのような結果になりましたか?


 急いで結果が欲しいのはわかりますが、それならばなおのこと、具体的に、何を見て、どのようにして、どのような結果になったかを書いてください。
 この書き方だと、SQL Serverとの接続がうまくいっていないのか、SQLの書き方がまずいのか、パラメータの設定が悪いのか、DataSetへのデータ登録の仕方がまずいのか、etc...
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-02 14:34
>いろいろ試したのですが

具体的にあげていただかないと、どこが間違っているのか分かりませんので指摘しようがないのですが。
未記入
会議室デビュー日: 2004/04/02
投稿数: 3
投稿日時: 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
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-02 16:42
えーと、どっちに書き込めばいいのかな・・・

DbUpdate()内の
[i]da.Update(ds)[i]
の直前にブレークポイントを設定し、dsの中身を見てみてください。
本当にテーブルがないのかどうか。

あと、DbUpdate()内のdaにはUpdateCommand等は指定しているんですか?
1

スキルアップ/キャリアアップ(JOB@IT)