我正在尝试编写一种方法来接受查询作为参数,然后运行该查询以将行添加到数据库中或编辑数据库中的数据。我正在使用MS Access DB,Visual Studio编写我的代码,以及使用VB.net作为编码语言。我使用了一种可以从数据库查询数据并对其进行修改以修改数据库中数据的方法。那是事情不太正常的地方。这是我修改的代码:
这是我要传递给方法的查询
query = "INSERT INTO TABLE ([Column 1], [Column 2]) VALUES ([GOTIT], 121212)"
这是我试图工作的方法
Public Sub ExecEditQuery(Query As String)
'reset variables
Exception = ""
Try
'open a connection (already declared as private variable: Private DBCon As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" &
' "Data Source=Database.mdb;"))
DBCon.Open()
'create DB command
DBCmd = New OleDbCommand(Query, DBCon)
'execute command
DBCmd.ExecuteNonQuery()
Catch ex As Exception
Exception = ex.Message
End Try
'close DB connection
If DBCon.State = ConnectionState.Open Then DBCon.Close()
答案 0 :(得分:0)
要连接到数据库,您需要调暗以下变量:
Public Filename As String = $"{AppDomain.CurrentDomain.BaseDirectory}YourDatabase.accdb"
Public ConStr As String = $"PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA Source = {Filename}"
Public DBCon As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConStr)
请记住,如果您要输入字符串,请记住将其用引号引起来。 另外,如果您输入的是SQL保留的表或字段,则该字段会以反斜线(`)
例如:
DBCon.Open()
DBCmd = New OleDbCommand($"INSERT INTO `User` (Username) VALUES ('{Username}')", DBCon)
DBCmd.ExecuteNonQuery()
关于您的查询,尝试重写为
query = $"INSERT INTO TABLE ([Column 1], [Column 2]) VALUES ('{GOTIT}', 121212)"