因为最近一直在和数据库打交道,所以做了几个小封装
class SqlHelper { private SqlHelper() { } /// <summary> /// 封装的 ExecuteNonQuery 方法 /// </summary> /// <param name="dataSource">配置文件中的 connectionString 对应的 name </param> /// <param name="cmdText">要执行的 sql 命令,带参数</param> /// <param name="parameters"> SqlParameter 参数数组</param> /// <returns>返回影响的行数</returns> public static int ExecuteNonQuery(string dataSource, string cmdText, params SqlParameter[] parameters) { string connStr = ConfigurationManager.ConnectionStrings[dataSource].ToString(); using(SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = cmdText; cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery(); } } } /// <summary> /// 封装 ExecuteScalar 方法 /// </summary> /// <param name="dataSource">配置文件中的 connectionString 对应的 name </param> /// <param name="cmdText">要执行的 sql 命令,带参数</param> /// <param name="parameters"> SqlParameter 参数数组</param> /// <returns>返回结果集中的第一行的第一列</returns> public static object ExecuteScalar(string dataSource, string cmdText, params SqlParameter[] parameters) { string connStr = ConfigurationManager.ConnectionStrings[dataSource].ToString(); using(SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using(SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = cmdText; cmd.Parameters.AddRange(parameters); return cmd.ExecuteScalar(); } } } /// <summary> /// 封装的 ExecuteReader 方法 /// </summary> /// <param name="dataSource">配置文件中的 connectionString 对应的 name </param> /// <param name="cmdText">要执行的 sql 命令,带参数</param> /// <param name="parameters"> SqlParameter 参数数组</param> /// <returns>返回一个 SqlDataReader 对象</returns> public static SqlDataReader ExecuteReader(string dataSource, string cmdText, params SqlParameter[] parameters) { string connStr = ConfigurationManager.ConnectionStrings[dataSource].ToString(); using(SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = cmdText; cmd.Parameters.AddRange(parameters); return cmd.ExecuteReader(); } } } /// <summary> /// 封装的 Fill 方法 /// </summary> /// <param name="dataSource">配置文件中的 connectionString 对应的 name </param> /// <param name="cmdText">要执行的 sql 命令,带参数</param> /// <param name="parameters"> SqlParameter 参数数组</param> /// <returns>返回一个填充了数据的 DataTable 对象</returns> public static DataTable ExecuteDataTable(string dataSource, string cmdText, params SqlParameter[] parameters) { string connStr = ConfigurationManager.ConnectionStrings[dataSource].ToString(); SqlCommand cmd = new SqlCommand(cmdText); cmd.Parameters.AddRange(parameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd.CommandText, connStr); DataTable table = new DataTable(); adapter.Fill(table); return table; } }