Выберите 2-й столбец вывода хранимой процедуры - PullRequest
0 голосов
/ 19 марта 2012

Моя хранимая процедура возвращает это

1 skl meter 50

Я хочу, чтобы моя программа на c # выбирала skl из вывода.

Я сейчас занимаюсь этим

SqlDataReader dr=comm.ExecuteReader();
var fal = dr.Read();

if (fal)
{
   var skl = dr.GetString(1);
}

и это не работает.

Как бы я выбрал Skl или любое другое значение из вывода sql?

Проблема в том, что он выбирает skl, даже если skl отсутствует в выводе

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Если ваша процедура возвращает более 1 строки данных, то я бы предложил привязку к сетке данных.Таким образом, вы также можете просмотреть выходные данные и (ui) способ отладки.Если у вас есть представление таблицы данных, показывающее ваши строки данных, я бы сделал что-то вроде этого:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if(row.Cells["Name of the field"].Value != DBNull.Value)
    {
        string Myval = row.Cells["Name of the field"].Value;
    }
}

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

0 голосов
/ 19 марта 2012

Вам нужно проверить на null и hasrows

         if(rdr.HasRows)
         {
                rdr.read();
                string strValue = string.Empty;
                if (!rdr.IsDBNull(1)) strValue = rdr.GetString(1);
          }
          else {} // woops
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...