好的,首先嘿。
从技术上讲,我是这个网站的新手,但是几年来我一直在使用它作为资源,只是因为我很难过,我现在才需要你的帮助。
我有一个查询 Db 的 VB 脚本,用字符串填充预期的框并显示它。
我的问题是,当我尝试使用更新 SQL 命令时,它会完成,但是当我手动检查时它不会更新数据库。
Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Data.mdb';")
Dim da As New OleDbDataAdapter
Dim dt As New DataTable()
Dim cmd As New OleDbCommand
da.SelectCommand = New OleDbCommand("update FDSL set Host=@Host, Owner=@Owner where ID = @ID", con)
Dim paramID As New OleDbParameter
paramID.ParameterName() = "@ID"
paramID.Value() = Label8.Text
da.SelectCommand.Parameters.Add(paramID)
Dim paramHost As New OleDbParameter
paramHost.ParameterName() = "@Host"
paramHost.Value() = TextBox1.Text
da.SelectCommand.Parameters.Add(paramHost)
Dim paramOwn As New OleDbParameter
paramOwn.ParameterName() = "@Owner"
paramOwn.Value() = TextBox4.Text
da.SelectCommand.ExecuteNonQuery()
MessageBox.Show("Record Updated! ", "Update Status", MessageBoxButtons.OK, MessageBoxIcon.Information)
Refresh()
con.Close()
我也尝试过使用 .tostring 最后的参数,但这也不起作用。
- - - - - 解决了 - - - - - - - -
我必须感谢@Gord Thompson 的帮助,但是我通过重新编码解决了这个问题。
Dim str As String
str = "update FDSL set Hostname=@Hostname, Owner=@Owner where ID=@id"
Dim cmd As New OleDbCommand(str, con)
cmd.Parameters.AddWithValue("@Hostname", TextBox1.Text)
cmd.Parameters.AddWithValue("@Owner", TextBox2.Text)
cmd.Parameters.AddWithValue("@ID", textbox6.Text)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
现在可以正常工作了,感谢您的再次帮助!