SqlDataReader [0] пуст - PullRequest
       5

SqlDataReader [0] пуст

1 голос
/ 01 ноября 2010

Я хочу отобразить первую строку SqlDataReader (это единственная строка / столбец, который возвращает база данных) в текстовом поле. Я думал, что это был правильный синтаксис, но я получаю ошибку «нет данных». Я могу гарантировать, что используемый SQL-запрос обязательно должен вернуть ответ, я проверил его в SQL Server.

SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
Label1.Text = reader[0].ToString();

reader[0], кажется, ничего не показывает.

Ответы [ 3 ]

4 голосов
/ 01 ноября 2010

Вам нужно действительно прочитать данные, если я правильно помню, используя:

reader.Read()

Который вы можете перебирать или просто использовать первое значение.

2 голосов
/ 01 ноября 2010

Вам нужно позвонить read(), чтобы перейти к строкам. Обычно используется как

   while(reader.read())
   {
        // do something
   }

В вашем случае поставьте reader.read() перед присвоением метке.

* Также не забывайте всегда закрывать его - используйте его в блоке using. *

0 голосов
/ 01 ноября 2010

Пожалуйста, прочитайте документацию для DataReader. Индексатор предоставляет значение на основе порядкового номера / номера столбца. Поскольку вы не начали (или не двигаетесь) через устройство чтения, оно будет пустым.

...