SQL читает данные из таблицы в vb - PullRequest
1 голос
/ 23 мая 2009

Я пытаюсь вернуть одно поле из данных. (Я ищу по первичному ключу, поэтому я должен получить 0 или 1 ответ). Пожалуйста помоги. В таблице, к которой я обращаюсь, есть одна запись с user = somebody, вход в несколько столбцов с тем, что столбец ans имеет «хороший ответ»


Код:

Dim reader As SqlDataReader
Dim par As SqlParameter
Dim result As String

Dim sqlconn As SqlConnection
sqlconn = New SqlConnection("....")
sqlconn.Open()

Dim sqlcmd As SqlCommand
sqlcmd = New SqlCommand("Select Ans From Test Where User = @auser", sqlconn)

par = New SqlParameter
par.ParameterName = "auser"
par.Value = Textbox1.Text

sqlcmd.Parameters.Add(par)

reader = sqlcmd.ExecuteReader()

result = reader.GetString(0)

''//output to label
label1.Text = result

Ответы [ 2 ]

4 голосов
/ 23 мая 2009

Сначала необходимо прочитать устройство чтения данных, чтобы поместить его в первый ряд.

Так что вместо

reader = sqlcmd.ExecuteReader()    
result = reader.GetString(0)

Вы бы вставили метод Read () следующим образом:

reader = sqlcmd.ExecuteReader()    
if reader.Read() then '' <<<<< newly inserted code
    result = reader.GetString(0)
end if
0 голосов
/ 23 мая 2009
''// using statement will guarantee the object is closed and disposed
''// even if an exception occurs
Using sqlconn As New SqlConnection("...."), _
      sqlcmd As  New SqlCommand("Select Ans From Test Where User = @auser", sqlconn)

    ''// you can create, add, and set the value for a parameter all on one line
    sqlcmd.Parameters.Add("@auser", SqlDbType.VarChar, 50).Value = Textbox1.Text

    ''//wait as long as possible to open the connection
    sqlconn.Open() 

    ''// if you're only getting the first column of the first row, use execute scalar
    label1.Text = CString(sqlcmd.ExecuteScalar())

End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...