DOBON.NET DOBON.NETプログラミング掲示板過去ログ

UpdateCommand時に同時実行違反になってしまいます

環境/言語:[環境(Win7)使用言語(VisualBasic2010 Express)]
分類:[.NET]

失礼致します。

環境
OS=Win7
言語=VisualBasic2010 Express
mdb =アクセス97
です。

市販の本(これから始めるvisualbasic2010/秀和システム)を参考にデータベース(MDB)のレコードを編集したいのですが、”同時実行違反:UpdateCommandによって、処理予定の1レコードのうち0件が処理されました。”とエラーになってしまします。

テーブル[TBL]のフィールド構成は以下の通りです。

TBL
インデックス
材質(テキスト型)  はい(重複あり)
色 (テキスト型) はい(重複あり)
高さ (テキスト型) いいえ
長さ (テキスト型)  いいえ

以下、コード内容です。
---------------------------------------------------------------------
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: このコード行はデータを 'TestDBDataSet1.TBL' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.TBLTableAdapter.Fill(Me.TestDBDataSet1.TBL)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' 変更
Try
Dim dTbl As DataTable = TestDBDataSet1.TBL
dTbl.Rows(1)(3) = "123"
TBLTableAdapter.Update(dTbl)
Catch ex As Exception
MessageBox.Show(ex.Message, "エラー")
End Try
End Sub

------------------------------------------------------------------

自分なりに解決策をいろいろ模索しましたが全くの力不足で原因すらわかっておりません。

誠に恐縮ではございますがどなたか原因がお分かりの方がおられましたらご指導の程、よろしくお願い致します。
■No31707に返信(そらさんの記事)
> テーブル[TBL]のフィールド構成は以下の通りです。
更新先の行をプログラムから特定できるよう、
テーブルに「主キー」を用意しておいてください。

> TBLTableAdapter.Update(dTbl)
TBLTableAdapter の UpdateCommand に記録された SQL 文が
正しい内容になっているか確認してみてください。
■No31709に返信(魔界の仮面弁士さんの記事)
> ■No31707に返信(そらさんの記事)
>>テーブル[TBL]のフィールド構成は以下の通りです。
> 更新先の行をプログラムから特定できるよう、
> テーブルに「主キー」を用意しておいてください。
>
>> TBLTableAdapter.Update(dTbl)
> TBLTableAdapter の UpdateCommand に記録された SQL 文が
> 正しい内容になっているか確認してみてください。

有難うございます。
UpdateCommandに記録されたSQL文が誤っていると確信できました。
まだ実際に確認はしていませんが(確認方法すらわかっていません)
とりあえず現在はADOで接続し以下の要領でSQLを実行して行を特定、Updateしております。

mySQL = "SELECT * FROM TBL WHERE 材質 = '木材' AND 色 = '黒色'"
cn.Open()
rs.Open(mySQL, cn, ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockOptimistic)
rs.Fields("高さ").Value = "159"
rs.Update()

なんとかもう少し勉強しDatatasetが使えるようにしたいと思います。
どうも有難うございました。
'
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板