您正在访问CMD的参数属性:
Dim cmd As SqlCommand
cmd.Parameters.AddWithValue("@password", pw.tostring) ' <== You can't use cmd yet!
您在尝试实例化之前:
Try
myconn.open
' This is where you are instantiating the object instance:
cmd = New SqlCommand("UPDATE Customers SET [email protected] WHERE [email protected]", myconn)
如果你改变这一点,它会工作:
Dim cmd As SqlCommand
cmd = New SqlCommand("UPDATE Customers SET [email protected] WHERE [email protected]", myconn)
' You could combine the two above lines into one like this:
'Dim cmd As New SqlCommand("UPDATE Customers SET [email protected] WHERE [email protected]", myconn)
cmd.Parameters.AddWithValue("@password", pw.tostring)
Try
myconn.open
这也更好,因为只有myconn.open
指令应该在Try/Catch中,因为它是唯一可能导致异常的行。 Try/Catch应该仅用于可能通过开发人员的错误导致异常的代码。向命令添加参数不会那样做,但实际的数据库交互可以。
谢谢你的答案。我从这么小的代码中学到了很多东西:D ps:一旦它让我接受答案 – Quattro