2014-05-21 146 views
-1

我有一个SQL查询。只是我想检查查询返回值或不使用C#。任何人都可以帮助解决这个问题。提前致谢。如何检查sql查询是否返回值?

Sqlcommand cmd = new Sqlcomman("select Name from Engdetails",con) 

if (query != 0) 
{ 
    some coding.. 
} 
else 
{ 
    coding... 
} 
+0

这会是很好,如果你张贴实际上编译,所以我们可以看到你是一个有效的解决方案是如何紧密有效的代码。 –

+0

它mut是一个非复制粘贴错误,但你忘记了SqlCommand上的'd' –

+0

并在最后分号。 –

回答

2
Sqlcommand cmd = new Sqlcomman("select Name from Engdetails",con) 

SqlDataReader reader = cmd.ExecuteReader(); 

if (reader.Read()) 
{ 
    // The command returns Row(s) 
} 
else 
{ 
    // No Row has been returned. 
} 
+0

非常感谢你们。我真的很喜欢你的快速反应。 – user2842413

0

有多种方式与SqlCommand的工作;一些例子:

using (SqlDataReader reader = cmd.ExecuteReader()) 
{ 
    if (reader.HasRows) 
    { 
    reader.Read(); 
... 

using (SqlCommand cmd = new SqlCommand(query, connection)) 
{ 
    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) 
    { 
     adapter.Fill(data); 
    } 

,如果它有数据,该数据将在data.Tables

+0

'reader.HasRows'是多余的。根据是否有一行可用,“Read()”将返回“true”或“false”。 –

+0

.HasRows将返回是否有任何行要读取而不移动读取指针,该读取指针将执行.Read()将执行的操作。我会授予你通常reader.Read()将在while循环中,但.HasRows回答海报问题。 – tooslow

+0

执行你无条件地调用'reader.Read()'if语句的第一行。我在说用if(reader.Read())'替换'if(reader.HasRows){reader.Read()'。 –

0

一个例子在此情况下rdr.GetString是该查询的名称值。

using (MySqlConnection conn = new MySqlConnection(constr)) 
{ 
    using (MySqlCommand cmd = new MySqlCommand()) 
    { 
     MySqlDataReader rdr = null; 


     string[] dados_bd = new string[2]; 

     conn.Open(); 
     cmd.Connection = conn; 
     cmd.CommandText = sql; 

     rdr = cmd.ExecuteReader(); 
     while (rdr.Read()) 
      { 
       if (estado == 1) 
       { 

        dados_bd[0] = rdr.GetString(0); 
0
SqlCommand cmd = new SqlCommand("select Name from Engdetails", con); 
int i = cmd.ExecuteNonQuery(); 
if (i > 0) 
{ 
    // somecoding 
} 
else 
{ 
    // somecoding 
} 
相关问题