- - PR -
データベースの一括更新
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-30 14:20
こんにちは。VB.netはじめたばかりの初心者です。
ツールボックスのデータからデータ接続するのは抵抗があり、こつこつプログラムを入力しています。 データセットからデータアダプタのアップデートを使ってサーバのデータを一括更新したいのですが、できなくてこまっています。 ご教授いただけたらとおもいます。よろしくお願いします。 SQLサーバにあるDB : DB 接続したいテーブル : Table_1 Table_1のフィールド数 : 5 sCn コネクション sDa データアダプタ sCmd コマンド @sqlConnectionString でKTと接続 AOpen で オープン BsqlClient.SqlDataAdapter でテーブルと接続 CsqlDa.Fill(dtSet,"Table_1") データとりだして DdtTable =dtSet.Tables("Table_1") で セット ココまでは決まりごとですよね。 txt_ID.DataBindings.Add("Text", dtSet, "T_Table1.ID") でカードの各項目にバインドしています。(各項目はテキストオブジェクトです。) データセットに登録まではできるんです。 その後、以下コードを記述したのですが、データセットからSqlサーバのDBにアップデートできません。 Private Sub UpdateDB() ***データセットが更新されていないときには、 ***以下の処理を実行しないようココでチェックが入ります。(省略略) If MsgBox("これまでの修正内容を登録しますか?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then Dim sqlCB As SqlClient.SqlCommandBuilder dtTable = dtSet.Tables("Table_1") sqlDa.Update(dtSet, "Table_1") MsgBox("データ登録しました") End If End Sub エラーメッセージとしては、以下の文章が出ます。 'System.InvalidOperationException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : 更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。 SqlCommandBuilderを使うとSQLが自動生成されるということなのですが・・・ やっぱり、SQL文(Updata、Insert)を入力しないとできないのでしょうか? | ||||||||
|
投稿日時: 2005-08-30 14:27
諸農です。
宣言だけで作っていないと言うか、Adapterにも関連付いていないような気がしますけど。。。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2005-08-30 14:54
わ!!
ほんとにごめんなさい。まさかこんな初歩的ミスとは・・・恥ずかしさでいっぱいです。 Private Sub UpdateDB() ***データセットが更新されていないときには、 ***以下の処理を実行しないようココでチェックが入ります。(省略略) If MsgBox("これまでの修正内容を登録しますか?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then Dim sqlCB As SqlClient.SqlCommandBuilder sqlCB = New SqlClient.SqlCommandBuilder(sqlDa) ←これが無いと意味ないですね・・ dtTable = dtSet.Tables("Table_1") sqlDa.Update(dtSet, "Table_1") MsgBox("データ登録しました") End If End Sub 早急な対応、ありがとうございました。 |
1