0

AccessデータベースでのSQLカウントクエリの結果を、結果がいくつあるかを示すテキストボックスに入力したいと思います。たとえば、データベースに200回入力されたコード番号があり、テキストボックスに200を表示したいとします。

これまでの私のコードは次のとおりです。

    ID = DataGridView1.CurrentRow.Cells(0).Value
    fn = DataGridView1.CurrentRow.Cells(1).Value
    ln = DataGridView1.CurrentRow.Cells(2).Value
    SKU = DataGridView1.CurrentRow.Cells(4).Value
    FC = DataGridView1.CurrentRow.Cells(5).Value


    Dim countNoTwo As String = "SELECT COUNT skuNo FROM table WHERE skuNo = " & SKU & ""
    Dim connection As New OleDbConnection(duraGadgetDB)
    Dim dataadapter As New OleDbDataAdapter(countNoTwo, connection)
    Dim ds As New DataSet()
    connection.Open()
    dataadapter.Fill(ds, "dura")
    connection.Close()

   txtbox1.Text

データセットの結果をtxtbox1.Textにバインドするにはどうすればよいですか?

4

2 に答える 2

1
  • まず、SQLコマンドを作成するために文字列連結を使用しないでください(理由= Sqlインジェクション+解析の問題)
  • 次に、コマンドが1つの結果のみを返す場合は、 ExecuteScalarを使用できます。
  • 3番目に、Usingステートメントを使用して、使用後に接続とコマンドが正しく破棄されることを確認します。

    Dim countNoTwo As String = "SELECT COUNT skuNo FROM table WHERE skuNo = ?"
    Using connection As New OleDbConnection(duraGadgetDB)
        Using command As New OleDbCommand(countNoTwo, connection)
           command.Parameters.AddWithValue("@sku", SKU)
           connection.Open()
           Dim result = Convert.ToInt32(command.ExecuteScalar())
           txtbox1.Text = result.ToString
        End Using
    End Using
    
于 2013-01-27T23:50:10.327 に答える
0

これを試して

Dim dt As DataTable = ds.Tables(0)
txtbox1.Text = dt.Rows(0).Item(0).ToString()
于 2013-01-27T23:31:49.327 に答える