Ado.NET SQLHelper
2016-03-09 16:46
453 查看
using System; using System.Data; using System.Data.SqlClient; namespace RaywindStudio { namespace DAL { /// <summary> /// MSSQL数据库操作类 /// </summary> public static class SqlHelper { /// <summary> /// 执行MSSQL插入表操作,默认列名:ColumnName=ParameterName.Replace("@","") /// </summary> /// <param name="TableName">表名称</param> /// <param name="parameters">SqlParameter</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>ExecuteNonQuery执行结果</returns> public static int InsertCMD(string TableName, SqlParameter[] parameters, SqlConnection sqlconn) { string sql = "Insert into " + TableName + "("; for (int i = 0; i < parameters.Length; i++) sql += parameters[i].ParameterName.Replace("@","") + ","; sql = sql.Substring(0, sql.Length - 1) + ") Values("; for (int j = 0; j < parameters.Length; j++) sql += parameters[j].ParameterName + ","; sql = sql.Substring(0, sql.Length - 1) + ")"; try { SqlCommand cmd = new SqlCommand(sql, sqlconn); cmd.Parameters.AddRange(parameters); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); return cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("InsertCMD:ExecuteNonQuery\n" + ex.Message); } } /// <summary> /// 执行MSSQL更新表操作,默认列名:ColumnName=ParameterName.Replace("@","") /// </summary> /// <param name="TableName">表名称</param> /// <param name="parameters">SqlParameter</param> /// <param name="sqlconn">一个SQL连接</param> /// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param> /// <returns>ExecuteNonQuery执行结果</returns> public static int UpdateCMD(string TableName, SqlParameter[] parameters, SqlConnection sqlconn, string Conditions) { string sql = "Update " + TableName + " Set "; for (int i = 0; i < parameters.Length; i++) sql += parameters[i].ParameterName.Replace("@", "") + "=" + parameters[i].ParameterName + ","; sql = sql.Substring(0, sql.Length - 1) + " Where 1=1 " + (Conditions.Length > 0 ? " and " + Conditions : ""); try { SqlCommand cmd = new SqlCommand(sql, sqlconn); cmd.Parameters.AddRange(parameters); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); return cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("UpdateCMD:ExecuteNonQuery\n" + ex.Message); } } /// <summary> /// 执行MSSQL表删除操作 /// </summary> /// <param name="TableName">表名称</param> /// <param name="sqlconn">一个SQL连接</param> /// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param> /// <returns>ExecuteNonQuery执行结果</returns> public static int DeleteCMD(string TableName, SqlConnection sqlconn, string Conditions) { string sql = "Delete From " + TableName + " Where 1=1 " + (Conditions.Length > 0 ? " and " + Conditions : ""); try { SqlCommand cmd = new SqlCommand(sql, sqlconn); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); return cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("DeleteCMD:ExecuteNonQuery\n" + ex.Message); } } /// <summary> /// Select查表 /// </summary> /// <param name="SqlString">一条完整、直接执行的select语句</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>DataTable</returns> public static DataTable SelectTable(string SqlString,SqlConnection sqlconn) { using (DataTable dt = new DataTable()) { using (SqlDataAdapter da = new SqlDataAdapter(SqlString, sqlconn)) { try { da.Fill(dt); return dt; } catch (Exception ex) { throw new Exception("SelectTable:\n" + ex.Message); } } } } /// <summary> /// Select查值 /// </summary> /// <param name="SqlString">一条完整、直接执行的select语句</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>ExecuteScalar</returns> public static object SelectValue(string SqlString, SqlConnection sqlconn) { try { SqlCommand cmd = new SqlCommand(SqlString, sqlconn); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); return cmd.ExecuteScalar(); } catch (Exception ex) { throw new Exception("SelectValue:\n" + ex.Message); } } /// <summary> /// 执行存储过程,无返回值 /// </summary> /// <param name="sqlString">存储过程执行语句,需包含Exec </param> /// <param name="parameters">SqlParameter</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>ExecuteNonQuery执行结果</returns> public static void ExecProcNonReturn(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn) { try { SqlCommand cmd = new SqlCommand(sqlString, sqlconn); cmd.Parameters.AddRange(parameters); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("ExecProcNonReturn:ExecuteNonQuery\n" + ex.Message); } } /// <summary> /// 执行存储过程,并直接返回执行的结果 /// </summary> /// <param name="sqlString">存储过程执行语句,需包含Exec </param> /// <param name="parameters">SqlParameter</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>ExecuteNonQuery执行结果</returns> public static object ExecProc(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn) { try { SqlCommand cmd = new SqlCommand(sqlString, sqlconn); cmd.Parameters.AddRange(parameters); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); return cmd.ExecuteScalar(); } catch (Exception ex) { throw new Exception("ExecProc:ExecuteScalar\n" + ex.Message); } } /// <summary> /// 执行存储过程,带一个返回参数并返回此参数的执行结果 /// </summary> /// <param name="sqlString">存储过程执行语句,需包含Exec </param> /// <param name="parameters">SqlParameter</param> /// <param name="parameter_out">SqlParameter.Direction = ParameterDirection.Output;</param> /// <param name="sqlconn">一个SQL连接</param> /// <returns>ExecuteNonQuery执行结果</returns> public static object ExecProc(string sqlString, SqlParameter[] parameters, SqlParameter parameter_out, SqlConnection sqlconn) { try { SqlCommand cmd = new SqlCommand(sqlString, sqlconn); cmd.Parameters.AddRange(parameters); cmd.Parameters.Add(parameter_out); if (sqlconn.State != ConnectionState.Open) sqlconn.Open(); cmd.ExecuteNonQuery(); return parameter_out.Value; } catch (Exception ex) { throw new Exception("ExecProc:ExecuteNonQuery\n" + ex.Message); } } } } }
相关文章推荐
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- 防止 jsp被sql注入的五种方法
- C# 一次执行多条SQL语句,Oracle11g数据库
- 对表数据进行(置顶,上移,下移,置底操作)---数据库sql
- 简单的理解数据库三范式
- SQL如何将A,B,C替换为'A','B','C'
- Mysql主从同步(复制)
- SQL动态行列变换
- 数据库三凡式通俗解析(转载)
- 数据库设计原则(转载)
- ArcGis 给数据库追加Domain
- Oracle数值处理函数 (绝对值、取整...)
- 2015.10-12 oracle苏州application developer校招面经
- Oracle根据表生成系统流水号
- Redis性能优化
- mongoDB的基本使用----飞天博客
- Linux下php安装Redis扩展
- mysql_udf_json 将数据转成json格式
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- maven 项目(二) mybatis-generator 反向数据库生成代码