Ошибка sqldatareader при чтении - PullRequest
0 голосов
/ 06 апреля 2011

Я извлекаю данные из mssql-сервера с помощью sql datareader .. и я хочу, чтобы значения в datareader отображались в виде сетки данных.как проверить, является ли определенное поле пустым ??

Row1 ["EmployeeID"] = x.GetString (2);когда я использую это для извлечения данных из sqldatareader (x), он говорит: «ДАННЫЕ - это ноль. Этот метод или свойство нельзя использовать / !!!»что еще я могу использовать, чтобы читать даже нулевые значения.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Я бы кодировал это так:

Row1["EmployeeID"] =  x[2] == DbNull ? string.Empty : x.GetString(2);
0 голосов
/ 06 апреля 2011

Вы можете использовать

Row1["EmployeeID"] = (x.GetValue(2) as string);

Если вы используете Getstring, он всегда будет выдавать исключение, если значение не является строкой. Если вы используете GetValue, он вернет объект, а если он будет нулевым, он вернет объект DBNull .

Редактировать: Использовать DataAdapter:

DataSet ds;
using (SqlConnection sqlCon = new SqlConnection(connectionString))
{
     sqlCon.Open();
     SqlCommand sqlCom = new SqlCommand("Select * From Table",sqlCon);
     SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCom);
     sqlDa.Fill(ds);
}

Затем вы можете привязать ds к вашему DataGridView.DataSource.

...