asp.net SqlHelp.cs 和 SQL预编译
SQL预编译:
string sql = "select count(1) from xxx where xxx = @id "; SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@id", id) }; sqlHelp.executeQueryScalar(sql, paras);
简单封装了一下
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using System.Data.SqlClient; /// <summary> /// 数据库操作帮助类 /// yzmm /// </summary> public class SqlHelp { private SqlConnection conn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null; public SqlHelp() { string connstr = ConfigurationManager.ConnectionStrings["dataSource"].ConnectionString; conn = new SqlConnection(connstr); } /// <summary> /// 获取数据库连接 /// </summary> /// <returns></returns> private SqlConnection getConnection() { if (conn.State == ConnectionState.Closed) { conn.Open(); } return conn; } /// <summary> /// 更新数据,返回影响行数 /// </summary> /// <param name="sql"></param> /// <returns></returns> public int executeNonQuery(String sql){ try{ SqlCommand cmd = new SqlCommand(sql, getConnection()); return cmd.ExecuteNonQuery(); }catch (Exception ex){ throw ex; }finally{ if (conn.State == ConnectionState.Open){ conn.Close(); } } } /// <summary> /// 更新数据,返回影响行数 /// </summary> /// <param name="cmdText"></param> /// <param name="paras"></param> /// <returns></returns> public int executeNonQuery(string cmdText, SqlParameter[] paras){ int res; using (cmd = new SqlCommand(cmdText, getConnection())){ cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); } return res; } /// <summary> /// 查询数据返回DataTable /// </summary> /// <param name="sql"></param> /// <returns></returns> public DataTable executeQueryReader(string sql, SqlParameter[] paras) { DataTable dt = new DataTable(); cmd = new SqlCommand(sql, getConnection()); if (paras != null && paras.Length > 0) { cmd.Parameters.AddRange(paras); } using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; } /// <summary> /// 查询数据库,返回单个结果object /// </summary> /// <param name="sql"></param> /// <param name="paras"></param> /// <returns></returns> public object executeQueryScalar(string sql, SqlParameter[] paras) { cmd = new SqlCommand(sql, getConnection()); if (paras != null && paras.Length > 0) { cmd.Parameters.AddRange(paras); } return cmd.ExecuteScalar(); } }