SQL выберите возвращаемое значение для переменной - PullRequest
3 голосов
/ 14 сентября 2009

работа с: ASP.net с использованием VB.net для подключения к MS SQL Server

То, что я пытаюсь сделать, это взять результат запроса выбора SQL и поместить его в строковую переменную, чтобы его можно было использовать в таких вещах, как текстовое поле или метка. пока что код не работает ...

Imports System.Data.SqlClient

Частичный класс dev_Default Наследует System.Web.UI.Page

Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load


    Dim cnPodaci As New SqlConnection
    cnPodaci.ConnectionString = "Data Source=<server>;Initial Catalog=<DB>;User ID=<UserName>;Password=<Password>"
    cnPodaci.Open()
    Dim cm As New SqlCommand
    cm.CommandText = "SELECT * FROM tbl1"
    cm.Connection = cnPodaci
    Dim dr As SqlDataReader
    dr = cm.ExecuteReader

    TextBox1.Text = dr.GetString(0)


    cnPodaci.Close()

End Sub

Конечный класс

Ответы [ 3 ]

4 голосов
/ 14 сентября 2009

Хотя вы выполнили запрос, вызвав в команде команду «ExecuteReader», на самом деле возвращается объект (DataReader), который позволит вам перебирать любые результаты запроса. Для этого необходимо вызвать метод «Чтение» в DataReader (его можно вызывать несколько раз в предложении цикла while). Модификация вашего кода примерно так должна работать:

If dr.Read() Then
    TextBox1.Text = dr.GetString(0)
End If

Однако имейте в виду, что это будет работать только в том случае, если первое поле, возвращаемое вашим запросом, является строкой, в противном случае может быть выдано исключение приведения.

2 голосов
/ 14 сентября 2009

Если запрос должен возвращать одно значение, вы можете просто использовать метод ExecuteScalar:

 TextBox1.Text = DirectCast(cm.ExecuteScalar(), String)
0 голосов
/ 14 сентября 2009

Проблема состоит в том, что запросы SELECT возвращают набор данных или, по крайней мере, строку из набора данных, а не строку.

Вам абсолютно необходим весь набор результатов в виде строки? Или то, что вы пытаетесь сделать, может быть достигнуто путем ссылки на точку в массиве или наборе данных?

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