2013-04-18 163 views
0

我需要帮助从数据库表中检索ReceiptNO列并将其保存到TextBoxLabel以供引用。Microsoft SQL Server SELECT语句

CODE:

Dim da2 As New SqlDataAdapter 
da2.SelectCommand = New SqlCommand("SELECT RecepitNO FROM Receipt WHERE ([email protected] AND [email protected])") 
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() 

回答

0

您需要使用SqlDataReader,然后开始一个循环读取返回的值
此示例将工作假设ReceiptNO是文本字段

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

或者,如果您确定您的查询返回零或只有一条记录,并且您只对ReceiptNO字段感兴趣,则可以使用ExecuteScalar

Dim cmd = New SqlCommand("SELECT RecepitNO FROM Receipt WHERE ([email protected] AND [email protected])") 
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 

Here the MSDN docs on ExecuteScalar

+0

我的领域只返回1 receiptNO ...感谢..应尽量BTM的方法 – 2013-04-18 07:50:13

+0

修订第二个例子中添加的连接对象 – Steve 2013-04-18 07:53:53

+0

它给了我InvalidOperationException异常是未处理的DIM结果= CMD。 executeScalar – 2013-04-18 08:25:00