遇到一个灰常纠结的问题.....
这是一个自定义方法:
C# code
public static int UpdataSql(string sql)
{
SqlConnection SqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString);
SqlCon.Open();
SqlCommand SqlCom = new SqlCommand(sql, SqlCon);
return SqlCom.ExecuteNonQuery();
SqlCon.Close();
}
返回值为受影响的行数。
我在SQLSERVER里使用查询的时候 SQL语法也没错,也能查到。
可是 :
以下是button按钮的事件代码,主要目的是判断是否查到了值,如果没有就弹出没有查到内容的相关提示
C# code
int s = Sql.InsertSql(strsql);
if (s > 0).....
问题就是,这个s的值却始终是 -1,导致每次都查询不到想要的结果。
我想知道,这是为什么?
------解决方案--------------------
执行ExecuteNonQuery时,只有insert,update,delete才返回行数哦!
select返回行数应该是:
public static int UpdataSql(string sql)
{
SqlConnection SqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString);
SqlCon.Open();
SqlCommand SqlCom = new SqlCommand(sql, SqlCon);
//return SqlCom.ExecuteNonQuery();
int n = Convert.ToInt16(SqlCom.ExecuteScalar());
SqlCon.Close();
return n;
}
调用:
int i = UpdataSql("select count(*) from 表 where ....");
还有你代码中的关闭连接根本没作用,因为之前已return了!