将查询计数存储在 vb 变量中



我一直在尝试用数据库做什么,但我不熟悉将查询结果存储在变量中等方面。我使用此代码片段查询具有多个记录的数据库,但不断得到的结果为零。有人可以解释一下这是如何工作的吗?这是我的片段...

str = "SELECT COUNT(Nickname) FROM Backup"
cmd.CommandText = str
cmd.Connection = myConn
myConn.Open()
cntPlns = cmd.ExecuteNonQuery()
MessageBox.Show(cntPlns.ToString)

连接在那里,但我的结果总是为零......感谢您的任何建议。

请参阅 ExecuteNonQuery 不返回 ...非查询是错误的 cmd。

试试这个>>

str = "SELECT COUNT(Nickname) as myCount FROM Backup"
cmd.CommandText = str
cmd.Connection = myConn
myConn.Open()
Using cntPlns As SqlDataReader = command.ExecuteReader
If cntPlns.Read Then
MessageBox.Show(cntPlns.GetInt32(0).ToString)  ' the first column
End If
End Using

你应该调用ExecuteScalar,而不是ExecuteNonQueryExecuteNonQuery用于执行非查询,即不生成结果集的 SQL 语句。ExecuteScalar用于执行查询和检索标量,即来自结果集第一行第一列的单个值,无论该结果集是否包含更多数据。

作为记录,您每次都得到零,因为ExecuteNonQuery返回受 SQL 语句影响的行数,其中受影响的意味着已更改。SELECT语句不会影响行,因此零是正确的结果。

查看我的 ADO.NET 示例以了解在何时何地使用哪些对象和成员可能会对您有所帮助。

最新更新