c#简单的SQLHelp
Posted IsCarrie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#简单的SQLHelp相关的知识,希望对你有一定的参考价值。
public abstract class SQLHelper { //只读的静态数据库连接字符串 //需添加引用System.Configuration; public static readonly string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; //public static readonly string connString = "server=.;database=Weight;uid=sa;pwd=1"; #region 执行 增 删 改 /// <summary> /// 执行 增 删 改 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>影响行数</returns> public static int ExecuteNonQuery(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回影响行数 return cmd.ExecuteNonQuery(); } } } /// <summary> /// 返回首行首列对象 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>首行首列对象</returns> public static object ExecuteScalar(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回影响行数 return cmd.ExecuteScalar(); } } } #endregion #region 执行 查询 /// <summary> /// 执行 查询 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>数据集</returns> public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串 SqlConnection conn = new SqlConnection(connString); //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回一个只进只读保持SQL连接的结果集,如果将返回的SqlDataReader关闭时也将关闭连接 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } } #endregion #region 完成数据的查询,返回DataTable /// <summary> /// 完成数据的查询,返回DataTable /// </summary> /// <param name="sql">要执行的sql</param> /// <param name="param">参数</param> /// <returns>DataTable</returns> public static DataTable GetTable(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //数据适配器 SqlDataAdapter adp = new SqlDataAdapter(sql, conn); if (param != null) { //批量添加参数 adp.SelectCommand.Parameters.AddRange(param); } //填充并返回数据表 DataTable dt = new DataTable(); adp.Fill(dt); return dt; } } #endregion #region 根据sql获得List集合 /// <summary> /// 根据sql获得List集合 /// </summary> public static List<T> GetList<T>(String sql, params SqlParameter[] param) where T : class,new() { List<T> entities = new List<T>(); using (SqlDataReader sdr = SQLHelper.ExecuteReader(sql)) { while (sdr.Read()) { T entity = new T(); //获得当前实体类型信息 Type type = typeof(T); //遍历结果集中的每一列 for (int i = 0; i < sdr.FieldCount; i++) { //获得列名 String columnName = sdr.GetName(i); //根据列名取得属性信息 PropertyInfo property = type.GetProperty(columnName); //如果当前列的值为null则跳过 if (!(sdr.GetValue(i) is DBNull)) { //给属性赋值 property.SetValue(entity, sdr.GetValue(i), null); } } entities.Add(entity); } } return entities; } #endregion }
public abstract class SQLHelper { //只读的静态数据库连接字符串 //需添加引用System.Configuration; public static readonly string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
//public static readonly string connString = "server=.;database=Weight;uid=sa;pwd=1";
#region 执行 增 删 改 /// <summary> /// 执行 增 删 改 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>影响行数</returns> public static int ExecuteNonQuery(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回影响行数 return cmd.ExecuteNonQuery(); } } }
/// <summary> /// 返回首行首列对象 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>首行首列对象</returns> public static object ExecuteScalar(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回影响行数 return cmd.ExecuteScalar(); } } } #endregion
#region 执行 查询 /// <summary> /// 执行 查询 /// </summary> /// <param name="sql">要执行的SQL</param> /// <param name="param">参数</param> /// <returns>数据集</returns> public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串 SqlConnection conn = new SqlConnection(connString); //实例化命令对象,指定sql,与连接对象 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //如果有参数 if (param != null) { //批量添加参数 cmd.Parameters.AddRange(param); } //打开连接 conn.Open(); //执行sql并返回一个只进只读保持SQL连接的结果集,如果将返回的SqlDataReader关闭时也将关闭连接 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } } #endregion
#region 完成数据的查询,返回DataTable /// <summary> /// 完成数据的查询,返回DataTable /// </summary> /// <param name="sql">要执行的sql</param> /// <param name="param">参数</param> /// <returns>DataTable</returns> public static DataTable GetTable(string sql, params SqlParameter[] param) { //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭 using (SqlConnection conn = new SqlConnection(connString)) { //数据适配器 SqlDataAdapter adp = new SqlDataAdapter(sql, conn); if (param != null) { //批量添加参数 adp.SelectCommand.Parameters.AddRange(param); } //填充并返回数据表 DataTable dt = new DataTable(); adp.Fill(dt); return dt; } } #endregion
#region 根据sql获得List集合 /// <summary> /// 根据sql获得List集合 /// </summary> public static List<T> GetList<T>(String sql, params SqlParameter[] param) where T : class,new() { List<T> entities = new List<T>();
using (SqlDataReader sdr = SQLHelper.ExecuteReader(sql)) { while (sdr.Read()) { T entity = new T(); //获得当前实体类型信息 Type type = typeof(T); //遍历结果集中的每一列 for (int i = 0; i < sdr.FieldCount; i++) { //获得列名 String columnName = sdr.GetName(i); //根据列名取得属性信息 PropertyInfo property = type.GetProperty(columnName); //如果当前列的值为null则跳过 if (!(sdr.GetValue(i) is DBNull)) { //给属性赋值 property.SetValue(entity, sdr.GetValue(i), null); } } entities.Add(entity); } }
return entities; } #endregion }
以上是关于c#简单的SQLHelp的主要内容,如果未能解决你的问题,请参考以下文章