当前位置: 代码迷 >> ASP.NET >> 遇到一个灰常纠结的有关问题.
  详细解决方案

遇到一个灰常纠结的有关问题.

热度:9725   发布时间:2013-02-25 00:00:00.0
遇到一个灰常纠结的问题.....

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