0

ReceiptNOデータベース テーブルから列を取得し、それをTextBoxまたはLabelに保存して参照する方法を教えてください。

コード:

Dim da2 As New SqlDataAdapter
da2.SelectCommand = New SqlCommand("SELECT RecepitNO FROM Receipt WHERE (PaidFor=@PaidFor AND RegNO=@RegNO)")
da2.SelectCommand.Parameters.Add("@paidFor", SqlDbType.VarChar).Value = cbMonth.Text
da2.SelectCommand.Parameters.Add("@RegNO", SqlDbType.Int).Value = lblRegNO.Text

cn.Open()
da2.Update(ds.Tables("Receipt"))
'da2.SelectCommand.ExecuteNonQuery()
da2.SelectCommand.ExecuteReader()
cn.Close()
4

1 に答える 1

0

SqlDataReaderを使用し、ループを開始して返された値を読み取る必要があります。
この例は、ReceiptNO がテキスト フィールドであると仮定して機能します。

cn.Open()
Dim reader = da2.SelectCommand.ExecuteReader()
while reader.Read()
    textBox1.Text = reader("ReceiptNO").ToString()
End While

または、クエリが 0 または 1 つのレコードを返すことが確実で、ReceiptNO フィールドのみに関心がある場合は、ExecuteScalar を使用できます。

Dim cmd = New SqlCommand("SELECT RecepitNO FROM Receipt WHERE (PaidFor=@PaidFor AND RegNO=@RegNO)")
cmd.Connection = cn
cmd.Parameters.Add("@paidFor", SqlDbType.VarChar).Value = cbMonth.Text
cmd.Parameters.Add("@RegNO", SqlDbType.Int).Value = lblRegNO.Text
cn.Open()
Dim result = cmd.ExecuteScalar()
if result IsNot Nothing Then
    textBox1.Text = result.ToString()
End If

ExecuteScalar に関する MSDN ドキュメントはこちら

于 2013-04-18T07:41:49.980 に答える