问题描述
我想采用ADO.NET来写一个方法:实现可以通过传入连接串,SQL语句获得SQL语句查询结果的记录数,方法形式如下:publicstaticintgetExesqlCount(StringstrConn,Stringsql){}请高手帮我写一个,感谢。
解决方案
解决方案二:
去msdn上搜吧,都有实例,比这写都行了。
解决方案三:
publicstaticintgetExesqlCount(StringstrConn,Stringsql){intcount=0;using(SqlConnectionconn=newSqlConnection(strConn)){conn.Open();using(SqlCommandcmd=conn.CreateCommand()){//cmd.CommandText=@"selectcount(*)fromusers";cmd.CommandText=sql;cmd.CommandType=CommandType.Text;count=(int)cmd.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。}conn.Close();conn.Dispose();returncount;}}
解决方案四:
不用那么麻烦的孩纸哟可以直接用EF框架然后通过泛型类2句就搞定了或者使用存储过程拼接SQL语句就行了换个思路来说无非就是常量和变量的感觉你写2个sel语句查询2个表看看哪些是不变的哪些是需要变的既然功能一致把不变的写死需要变动的做为参数即可
解决方案五:
引用2楼zhi_ai_yaya的回复:
publicstaticintgetExesqlCount(StringstrConn,Stringsql){intcount=0;using(SqlConnectionconn=newSqlConnection(strConn)){conn.Open();using(SqlCommandcmd=conn.CreateCommand()){//cmd.CommandText=@"selectcount(*)fromusers";cmd.CommandText=sql;cmd.CommandType=CommandType.Text;count=(int)cmd.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。}conn.Close();conn.Dispose();returncount;}}
用了using不是可以自动释放资源
解决方案六:
引用4楼aazbc的回复:
用了using不是可以自动释放资源
是的,出了using作用域,自动释放资源。conn.Close();conn.Dispose();我添加这两句也没错,因为释放资源前,内部会判断资源是否已经释放,所以不会重复释放的。
解决方案七:
随便找个sqlhelper或者使用企业库