我是VB.NET的新手,想知道我是如何解决这个错误的。
CODE
Dim sql As String = "SELECT (USER) FROM USER_CONSTANT"
Dim conn As New SqlConnection(strConn)
Dim objDR As SqlDataReader
Dim Cmd As New SqlCommand(sql, conn)
conn.Open()
objDR = Cmd.ExecuteScalar(CommandBehavior.CloseConnection)
While objDR.Read()
Label7.Text = objDR("USER")
答案 0 :(得分:0)
ExecuteScalar方法并不期望任何参数。 CommandBehavior枚举可以传递给ExecuteReader方法,所以我想你的代码应该写成
Dim sql As String = "SELECT (USER) FROM USER_CONSTANT"
Using conn = New SqlConnection(strConn)
Using Cmd = New SqlCommand(sql, conn)
conn.Open()
Using objDR = Cmd.ExecuteReader(CommandBehavior.CloseConnection)
While objDR.Read()
Label7.Text = objDR("USER")
End While
End Using
End Using
End Using
目前尚不清楚您是否希望从此代码中收到多条记录。如果返回了多个记录,请注意在每个循环中,您使用当前USER更改Label7.Text的内容,并且您的循环以显示的姓氏结束
答案 1 :(得分:0)
ExecuteScalar
不接受任何变量(请参阅DiskIo_TypeGroup1)。只需将该行更改为objDR = Cmd.ExecuteScalar
。
答案 2 :(得分:0)
就像错误所说的那样,ExecuteScalar
没有超载接受那么多的参数。 Or any arguments。代替:
objDR = Cmd.ExecuteScalar()
或者您的意思是使用ExecuteReader
,因为您打算循环结果并且标量不是结果集?
objDR = Cmd.ExecuteReader(CommandBehavior.CloseConnection)