2011-11-12 12 views
5

मैं इस SQL ​​क्वेरी लिखा है:स्थिति खाली परिणाम के साथ क्वेरी के लिए

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(); 

और अगर हालत की तरह मैं कुछ जोड़ना चाहते हैं:

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

कैसे पता करूं कि के लिए शर्त एक जोड़ सकते हैं जब मेरी क्वेरी का कोई जवाब नहीं है?

उत्तर

8

cmd2.ExecuteNonQuery करने के लिए कॉल निकालें, फिर कुछ इस तरह जोड़ें:

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

आप इस प्रकार का रीडर का उपयोग कर सकते हैं:

मतलब यह है कि कोड के प्रकार पूर्णांक है, तो के रूप में बदलने के आवश्यक

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

MSDN के अनुसार:

यदि परिणाम सेट में पहली पंक्ति का पहला स्तंभ नहीं मिला है, तो एक शून्य संदर्भ (विजुअल बेसिक में कुछ भी नहीं) लौटाया जाता है। यदि डेटाबेस में मान शून्य है, तो क्वेरी DBNull लौटाती है। वैल्यू।

तो, आप बस लिख सकते हैं:

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

वैकल्पिक रूप से, आप ExecuteReader इस्तेमाल कर सकते हैं, तो यह देखना होगा कि लौट आए पाठक HasRows

संबंधित मुद्दे