2013-07-22 3 views
0

У меня есть команда, которая отображать имя, основанное на EmpId:Handle нулевые значения

using (SqlCommand SqlCommand = new SqlCommand("Select EmpID, Name from EmpTable where EmpID = @a", myDatabaseConnection)) 
       { 
        SqlCommand.Parameters.AddWithValue("@a", textBox1.Text); 
        using (SqlDataReader sqlreader = SqlCommand.ExecuteReader()) 
        { 

         if (sqlreader.Read()) 
         { 
          Namelabel.Text = sqlreader.GetString(sqlreader.GetOrdinal("Name")); 
         } 
        } 
       } 

Как я буду обращаться, если имя данных null? Например, если данные nullNamelabel.Text = "".

+0

Что с этим нужно обращаться? Я бы предположил, что код, который у вас уже есть, будет отлично работать, если вывод будет нулевым. – Servy

+0

Что делать, если его нуль? – user1

+0

Что вы хотите проверить на нуль? –

ответ

1

Вы имеете в виду что-то вроде этого?

Namelabel.Text = !String.IsNullOrEmpty(sqlreader.GetString(sqlreader.GetOrdinal("Name"))) ? sqlreader.GetString(sqlreader.GetOrdinal("Name")) : "Value not found"; 

Это даст некоторый результат, если значение в базе данных равно NULL.

+0

Спасибо Карлу :) –

0

Просто проверьте значение null при чтении.

if (sqlreader.Read()) 
{ 
     Namelabel.Text = sqlreader.GetString(sqlreader.GetOrdinal("Name")==null?"":sqlreader.GetOrdinal("Name")); 
} 
1

Вы можете указать use IsDBNull(), чтобы проверить значение null, прежде чем пытаться прочитать это значение как строку. Что-то вроде этого:

if (sqlreader.Read()) 
{ 
    var columnOrdinal = sqlreader.GetOrdinal("Name"); 
    if (sqlReader.IsDBNull(columnOrdinal)) 
     NameLabel.Text = string.Empty; 
    else 
     Namelabel.Text = sqlreader.GetString(columnOrdinal); 
}