2011-11-12 12 views
5

bu SQL sorgusu yazdım edin:Durumu boş sonuç ile Query için

SqlCommand cmd2 = new SqlCommand(); 
     cmd2.Connection = new SqlConnection(Class1.CnnStr); 
     cmd2.CommandText = "SELECT MAX(Code) FROM Table WHERE [email protected] "; 
     cmd2.Connection.Open(); 
     cmd2.Parameters.AddWithValue("@Number", Hidden_txt.Text); 
     cmd2.ExecuteNonQuery(); 

ve durumu gibi eğer bazı eklemek istiyorum: koşul için eğer

if (cmd2.ExecuteScalar()=="Null") 
{....} 

Nasıl ekleyebilir Sorgumun bir cevabı yok mu?

cevap

8

cmd2.ExecuteNonQuery çağrısı çıkarın, sonra böyle bir şey ekleyin:

object maxCode = cmd2.ExecuteScalar(); 
if (maxCode == null) 
{ 
    // Null 
} 
else 
{ 
    // do something with maxCode, you probably want to cast - e.g. (int)maxCode 
} 
3

Böyle bir okuyucu kullanabilirsiniz:

Bu Kanunun tamsayı olduğunu varsayar, böylece değiştirmek MSDN göre gerekli

SqlDataReader reader = cmd2.ExecuteReader; 
int code = 0; 
if (reader.Read) { 
    //whatever if it has a result 
    code = reader.GetInt32(0); 
} else { 
    //Whatever if it finds nothing 
} 
2

:

Sonuç kümesindeki ilk satırın ilk sütunu bulunamazsa, boş bir başvuru (Visual Basic'teki hiçbir şey) döndürülür. Veritabanındaki değer boşsa, sorgu DBNull.Value değerini döndürür.

Yani, sadece yazabilirsiniz:

if (cmd2.ExecuteScalar() == null) 
{....} 

dilerseniz, daha sonra okuyucu HasRows döndü olup olmadığını kontrol ExecuteReader kullanabilirsiniz.

İlgili konular