这是一个自定义方法:
- 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了!