2011-11-12 41 views
5

Tôi đã viết truy vấn SQL này:Nếu Điều kiện để truy vấn với quả Rỗng

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

và tôi muốn thêm một số nếu điều kiện như:

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

Làm thế nào tôi có thể thêm một nếu điều kiện cho khi truy vấn của tôi không có câu trả lời?

Trả lời

8

Xóa gọi cmd2.ExecuteNonQuery, sau đó thêm một cái gì đó như thế này:

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

Bạn có thể sử dụng một đầu đọc như thế này:

này giả định rằng các loại của Bộ luật là số nguyên, vì vậy thay đổi khi cần thiết

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

Theo MSDN:

Nếu cột đầu tiên của hàng đầu tiên trong tập kết quả không được tìm thấy, tham chiếu null (Không có gì trong Visual Basic) được trả về. Nếu giá trị trong cơ sở dữ liệu là null, truy vấn trả về DBNull.Value.

Vì vậy, bạn chỉ có thể viết:

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

Ngoài ra, bạn có thể sử dụng ExecuteReader, sau đó kiểm tra xem trở lại đọc HasRows.

Các vấn đề liên quan