虽然代码是正确的,但更新语句无效

时间:2013-09-15 10:18:21

标签: vb.net

我的更新语句不起作用..当我检查它时,对数据库没有影响

这是代码

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()

1 个答案:

答案 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)