@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

オートナンバー型を含むデータベース更新

1
投稿者投稿内容
とも
会議室デビュー日: 2004/10/21
投稿数: 12
投稿日時: 2004-10-31 07:16
たびたびお世話になります。
ASP.NETとVB.NETにて作業しています。主キーをオートナンバー型に
設定したデーターベースからデータセットを生成し、そこに新たに行を
加えてデータベースを更新したいのですが、
 Parameter ?_1 にデフォルト値がありませんというエラーがでてしまいます。

Dim strInsert As String = "INSERT INTO tblCustomer(ID,Name) VALUES(?,?)"

Dim prmID As New OleDbParameter("ID", OleDbType.VarChar, 50)
Dim prmName As New OleDbParameter("Name", OleDbType.VarChar, 50)

cmdcust.Parameters.Add(prmID)
cmdcust.Parameters.Add(prmName)

cmdcust.CommandText = strInsert
cmdcust.Connection = connection()
objDACust.InsertCommand = cmdcust
objDACust.Update(データセット, "テーブル名") <-ここでエラーとなる
objDSCust.AcceptChanges()

以上が更新の為のコードです。IDというのがオートナンバー型の主キーです。
他の方のスレッド等も探してみたのですがうまく自分のプログラムに応用
できません。どなたかご教示いただけますでしょうか?
よろしくお願いします。

えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-11-01 00:06
パラメータの設定が必要です。
objDACust.InsertCommand.Parameters["Name"].Value = Name

私の経験ではオートナンバー型主キーはINSERT文にパラメータ追加しません。
Dim strInsert As String = "INSERT INTO tblCustomer(Name) VALUES(?)"
でいいのでは無いでしょうか?

SelectCommand には必要です。
Update/DeleteにはWhere文に必要です。

_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
とも
会議室デビュー日: 2004/10/21
投稿数: 12
投稿日時: 2004-11-03 02:15
えムナウさん、
オートナンバー型主キーをパラメータからはずしてパラメータの設定を
やり直したらうまく動くようになりました。どうもありがとうございました!
1

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