首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-05-16 
遇到一个灰常纠结的问题.....这是一个自定义方法:C# codepublic static int UpdataSql(string sql){SqlCon

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

这是一个自定义方法:

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了!

热点排行