vb.net - 未将对象引用设置为对象的实例

时间:2011-07-04 08:53:33

标签: vb.net parameters sqlcommand executescalar

我在尝试将参数用于我的sql语句时遇到此错误,但在不使用它时它可以正常工作。我的代码如下:

Dim i As String
Dim sql as String

 sql = "SELECT * FROM tblStaff WHERE Username = @User AND Password = @Pass"
 myCommand = New SqlCommand(sql, myConnection)
 myCommand.Parameters.AddWithValue("@User", txtUser.Text)
 myCommand.Parameters.AddWithValue("@Pass", txtPassword.Text)

 i = myCommand.ExecuteScalar
 txtUserType.Text = i.ToString

当我评论txtUserType.Text = i.ToString时,它运作正常。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

ExecuteScalar应该只返回一个值,就像整数一样。因此,如果您在SQL语句中仅指定一列(例如,从tblStaff中选择usertype ...),则执行标量应返回一个整数(如果该列是数字)。

然后它应该工作。

顺便说一下..你不必在一个字符串变量上使用ToString。只需使用变量名称 txtUserType.Text = i