0
這裏是我的代碼我想在我的vb.net來更新我的訪問數據庫,但總是得到錯誤
Private Sub ButtonEdit_Click(sender As Object, e As EventArgs) Handles ButtonEdit.Click Dim cb As New OleDb.OleDbCommandBuilder(da) cb.QuotePrefix = "[" cb.QuoteSuffix = "]"
ds.Tables("ProductDatabase").Rows(inc).Item("BARCODE") = TextBoxBarcode.Text
ds.Tables("ProductDatabase").Rows(inc).Item("PRODUCT NAME") = TextBoxProductName.Text
ds.Tables("ProductDatabase").Rows(inc).Item("PRINCIPAL") = TextBoxPrincipal.Text
ds.Tables("ProductDatabase").Rows(inc).Item("BUYING PRICE") = TextBoxBuying.Text
ds.Tables("ProductDatabase").Rows(inc).Item("SELLING PRICE") = TextBoxSelling.Text
da.Update(ds, "ProductDatabase")
MsgBox("Data successfully edited.")
然後顯示此消息:
動態SQL生成UpdateCommand不支持 SelectCommand不返回任何鍵列信息
和highlght部分
da.Update(ds, "ProductDatabase")
謝謝@BCole。最後,我成功地通過添加這些代碼使BARCODE成爲我的主鍵:Dim dColumn()As DataColumn = {ds.Tables(「ProductDatabase」)。Column(「BARCODE」)} 012s.dll表(「ProductDatabase」)。PrimaryKey = dColumn'但我又遇到了1個問題。當我運行我的程序時,它顯示了以下消息:「列'BARCODE'被限制爲唯一的。價值'8993027133205'已經存在了'你知道這是什麼嗎? –
您的表格的主鍵必須是唯一的。而不是在代碼中定義它,編輯表並將其作爲主鍵。你的代碼會自動接受它。如果您不能擁有唯一的條形碼,那麼您將不得不添加一個包含唯一值的列,如自動編號,並將其作爲主鍵。無論關鍵是什麼,請在您的選擇中包含該字段,以便更新正常工作。 – BCole
哇它真的適合我。該程序正在運行。正如你所說,我做了一個自動編號作爲我的主鍵。但是,當我通過單擊edit_button編輯數據時,我的數據庫根本沒有更新。你可以幫我嗎? –