1

我正在使用此代码来检索机器数量(计数)...

    Dim strCntSr As String = "SELECT count(sr_no) FROM Vendor_Machine WHERE chaln_no='" & cmbChal_no.Text & "'"
    comm_getCnt = New OleDb.OleDbCommand(strCntSr, cnnOLEDB)
    comm_getCnt.ExecuteNonQuery()

    ***Here I want to set result of the above query [count(sr_no)] as text of lblMachine***

    lblMachine.Text = 

请给我建议代码..谢谢..

4

1 回答 1

2

ExecuteNonQuery仅返回受影响的行数,而不是查询返回的值。
在您的情况下,正确使用的方法是ExecuteScalar,它返回查询获得的第一行的第一列。

另请注意,使用字符串连接构建查询文本是一种非常糟糕的做法。
问题是Sql 注入和正确解析您提供的文本。

Dim strCntSr As String = "SELECT count(sr_no) FROM Vendor_Machine WHERE chaln_no=?"
comm_getCnt = New OleDb.OleDbCommand(strCntSr, cnnOLEDB)
comm_getCnt.Parameters.AddWithValue("@p1", cmbChal_no.Text)
Dim result = comm_getCnt.ExecuteScalar()
lblMachine.Text = Convert.ToInt32(result);
于 2013-04-13T08:04:43.183 回答