我试图在uname数据库字段中插入此名称。但似乎它没有做好。 Anhy帮助将不胜感激。我已经检查了所有可能的帮助来源。但它仍然是一样的。
Public Conn_OLE As New OleDb.OleDbConnection
Public myCMD As New OleDb.OleDbCommand
Public myDR As OleDb.OleDbDataReader
Public Sub ConOpenDB_OLE() 'Use to connect to a database via oledb
Try
Conn_OLE = New OleDb.OleDbConnection
Conn_OLE.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\DHALIA\Downloads\ThesisSystem - Copy\ThesisSystem - Copy\Thesis_Try_1\ThesisDB.accdb;Jet OLEDB:Database Password=mdr_mvp"
Conn_OLE.Open()
Conn_OLE.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
ConOpenDB_OLE()
Conn_OLE.Open()
myCMD.CommandText = "INSERT INTO USER ([uname],) VALUES (@uname)"
myCMD.Parameters.AddWithValue("@uname", UsernameTextBox.Text)
myCMD.Connection = Conn_OLE
myCMD.ExecuteNonQuery()
myCMD.Dispose()
Conn_OLE.Close()
End Sub
答案 0 :(得分:0)
USER是Access中的保留关键字,您需要使用方括号并在 uname 字段后修复拼写错误:(在列出的最后一个字段后不需要逗号)
CMD.CommandText = "INSERT INTO [USER] ([uname]) VALUES (@uname)"
另外,我建议您将创建连接的代码更改为
Public Function ConOpenDB_OLE() As OleDbConnection
Dim con = New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\DHALIA\Downloads\ThesisSystem - Copy\ThesisSystem - Copy\Thesis_Try_1\ThesisDB.accdb;Jet OLEDB:Database Password=mdr_mvp"
con.Open()
Return con
End Sub
这允许您编写此代码
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Using con = ConOpenDB_OLE()
myCMD.CommandText = "INSERT INTO [USER] ([uname]) VALUES (@uname)"
myCMD.Parameters.AddWithValue("@uname", UsernameTextBox.Text)
myCMD.Connection = con
myCMD.ExecuteNonQuery()
End Using
End Sub
通过这种方式,你不再需要一个全局变量来保持你的连接,你只需要它就可以得到它,并且使用using语句你也不会忘记正确的关闭和处理,如果是异常。