【发布时间】:2021-11-23 22:03:10
【问题描述】:
我正在使用 Vb.Net 使用一些文本框来更新我的访问数据库。这是我在表单中单击“更新”按钮时没有给出任何错误的代码,但也没有任何反应。由于某种原因,数据库没有得到更新。我不确定我做错了什么。
Dim pro As String
Dim connstring As String
Dim command As String
Dim myconnection As OleDbConnection = New OleDbConnection
pro = "Provider =Microsoft.ACE.OLEDB.12.0; data source= C:\Users\Hamza\Documents\POS system1.accdb"
connstring = pro
myconnection.ConnectionString = connstring
myconnection.Open()
Dim Str = "Update Customers SET FirstName=?, LastName=?, Address=?, PhoneNo=?, Points=? WHERE CustID=?"
Dim cmd = New OleDbCommand(Str, myconnection)
cmd.Parameters.AddWithValue("@CustID", CustIDTextBox)
cmd.Parameters.AddWithValue("@FirstName", First_NameTextBox)
cmd.Parameters.AddWithValue("@LastName", Last_NameTextBox)
cmd.Parameters.AddWithValue("@Address", AddressTextBox)
cmd.Parameters.AddWithValue("@PhoneNo", Phone_noTextBox)
cmd.Parameters.AddWithValue("@Points", PointsTextBox)
cmd.ExecuteNonQuery()
MsgBox("Updated!")
【问题讨论】:
-
移动带有参数@CustID 的行作为最后添加的行。在 OleDb 中,参数是位置的
-
这些参数值也是文本框的名称吗?如果是,您还有另一个错误,因为 TextBox 的值在 Text 属性中
-
@Steve 谢谢。但是你说的第二点是什么意思?我必须先将文本框转换为文本吗?
-
PointsTextBox.Text、CustIDTextBox.Text 等。您需要在 AddWithValue 中传递值而不是文本框本身。还要记住 AddWithValue 很难使用。带小数的数值,DateTime 值存在本地化问题。始终使用 Add 传递数据库列所期望的类型
标签: database vb.net ms-access textbox