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 に答える