- - PR -
DataAdapterクラスのUpdateメソッドについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-04-02 16:32
質問です。今、VB.NETでSqlサーバのデータをプログラムから更新したいのですが、うまくいきません。
具体的には、Windowsフォームから画面入力されたデータをDataSet型の変数に格納して、その格納されたデータをそっくりそのままDBに更新したいのです。 今までは以下のソース等を試していました。 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=okumura;Trusted_Connection=yes;database=WeekRateDB" '接続開始 cn.Open() 'DBを更新 da.Update(ds) '接続終了 cn.Close() End Sub この結果として、da.update(ds)の部分でエラーが発生し、 「DataSetにDataTableが存在しない」 といわれます。 「ds.Tables.Add(inputDt)」の部分でDataTableは追加しているつもりなのですが。 何かわかる方がいらっしゃいましたら、ご指摘等お願いいたします。 |
|
投稿日時: 2004-04-02 17:11
う〜ん、難解・・・
inputDtを、宣言時にNewしていますが、DataGrid1.DataSourceを参照させるので、Newする必要はありません。Newは実体が作られます。参照は、実体がなくても出来ます。 データテーブルは1つだけなら、データセットではなく、データテーブルを引数としたUpdateメソッドを呼び出せばよいのでは? UpdateCommandを生成/参照しているところがないのですが、その部分はどうなっていますか? |
1
