我试图在uname数据库字段中插入这个名称。但这似乎不太好。我会感谢你的帮助。顺便说一句,我已经查过了我能得到的所有帮助的来源。然而,它仍然一样。
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
发布于 2017-04-28 17:36:41
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语句,您也不会在异常情况下忘记正确的关闭和处理。
https://stackoverflow.com/questions/43685837
复制相似问题