2013-04-18 7 views
0

Мне нужна помощь, чтобы получить столбец ReceiptNO из таблицы базы данных и сохранить его в TextBox или Label для ссылки.Оператор SELECT Microsoft SQL Server

КОД:

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 –

+0

Пересмотренный второй пример, чтобы добавить объект – Steve

+0

соединения он дает мне InvalidOperationException было необработанное для DIM результата = CMD. executeScalar –

Смежные вопросы