我的更新语句不起作用..当我检查它时,对数据库没有影响
这是代码
conn.Open()
Try
Dim update As New OleDbCommand
update.Connection = conn
update.CommandText = " update O_name set fname = ' " & Name1.Text & " ' where ID = ' " & ID.Text & " ' "
update.ExecuteNonQuery()
MsgBox("done")
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
conn.Close()
答案 0 :(得分:2)
Using connection As New OleDbConnection(connectionString)
Using command As New OleDbCommand("update O_name set fname =? where ID =?", connection)
command.Parameters.AddWithValue("p1", Name1.Text)
command.Parameters.AddWithValue("p2", ID.Text)
command.Connection.Open()
command.ExecuteNonQuery()
MsgBox("done")
End Using
End Using
使用参数,但您需要使用?
指定参数,因为:
OLE DB .NET提供程序不支持传递的命名参数 SQL语句或由a调用的存储过程的参数 CommandType设置为Text时的OleDbCommand。在这种情况下, 必须使用问号(?)占位符。
<强>更新强>
您的参数值分配中有其他空格,请尝试以下
update.CommandText = String.Format("UPDATE O_name SET fname ='{0}' WHERE ID ='{1}'",Name1.Text, ID.Text)