当前位置: 首页 > news >正文

Ado.NET SQLHelper

  1 using System;
  2 using System.Data;
  3 using System.Data.SqlClient;
  4 
  5 namespace RaywindStudio
  6 {
  7     namespace DAL
  8     {
  9         /// <summary>
 10         /// MSSQL数据库操作类
 11         /// </summary>
 12         public static class SqlHelper
 13         {
 14             /// <summary>
 15             /// 执行MSSQL插入表操作,默认列名:ColumnName=ParameterName.Replace("@","")
 16             /// </summary>
 17             /// <param name="TableName">表名称</param>
 18             /// <param name="parameters">SqlParameter</param>
 19             /// <param name="sqlconn">一个SQL连接</param>
 20             /// <returns>ExecuteNonQuery执行结果</returns>
 21             public static int InsertCMD(string TableName, SqlParameter[] parameters, 
 22                 SqlConnection sqlconn)
 23             {
 24                 string sql = "Insert into " + TableName + "(";
 25                 for (int i = 0; i < parameters.Length; i++)
 26                     sql += parameters[i].ParameterName.Replace("@","") + ",";
 27                 sql = sql.Substring(0, sql.Length - 1) + ") Values(";
 28                 for (int j = 0; j < parameters.Length; j++)
 29                     sql += parameters[j].ParameterName + ",";
 30                 sql = sql.Substring(0, sql.Length - 1) + ")";
 31                 try
 32                 {
 33                     SqlCommand cmd = new SqlCommand(sql, sqlconn);
 34                     cmd.Parameters.AddRange(parameters);
 35                     if (sqlconn.State != ConnectionState.Open)
 36                         sqlconn.Open();
 37                     return cmd.ExecuteNonQuery();
 38                 }
 39                 catch (Exception ex)
 40                 {
 41                     throw new Exception("InsertCMD:ExecuteNonQuery\n" + ex.Message);
 42                 }
 43             }
 44 
 45             /// <summary>
 46             /// 执行MSSQL更新表操作,默认列名:ColumnName=ParameterName.Replace("@","")
 47             /// </summary>
 48             /// <param name="TableName">表名称</param>
 49             /// <param name="parameters">SqlParameter</param>
 50             /// <param name="sqlconn">一个SQL连接</param>
 51             /// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param>
 52             /// <returns>ExecuteNonQuery执行结果</returns>
 53             public static int UpdateCMD(string TableName, SqlParameter[] parameters, 
 54                 SqlConnection sqlconn, string Conditions)
 55             {
 56                 string sql = "Update " + TableName + " Set ";
 57                 for (int i = 0; i < parameters.Length; i++)
 58                     sql += parameters[i].ParameterName.Replace("@", "") 
 59                         + "=" + parameters[i].ParameterName + ",";
 60                 sql = sql.Substring(0, sql.Length - 1)
 61                    + " Where 1=1 " + (Conditions.Length > 0 ? " and " + Conditions : "");
 62                 try
 63                 {
 64                     SqlCommand cmd = new SqlCommand(sql, sqlconn);
 65                     cmd.Parameters.AddRange(parameters);
 66                     if (sqlconn.State != ConnectionState.Open)
 67                         sqlconn.Open();
 68                     return cmd.ExecuteNonQuery();
 69                 }
 70                 catch (Exception ex)
 71                 {
 72                     throw new Exception("UpdateCMD:ExecuteNonQuery\n" + ex.Message);
 73                 }
 74             }
 75 
 76             /// <summary>
 77             /// 执行MSSQL表删除操作
 78             /// </summary>
 79             /// <param name="TableName">表名称</param>
 80             /// <param name="sqlconn">一个SQL连接</param>
 81             /// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param>
 82             /// <returns>ExecuteNonQuery执行结果</returns>
 83             public static int DeleteCMD(string TableName, SqlConnection sqlconn, string Conditions)
 84             {
 85                 string sql = "Delete From " + TableName + " Where 1=1 " 
 86                     + (Conditions.Length > 0 ? " and " + Conditions : "");
 87                 try
 88                 {
 89                     SqlCommand cmd = new SqlCommand(sql, sqlconn);
 90                     if (sqlconn.State != ConnectionState.Open)
 91                         sqlconn.Open();
 92                     return cmd.ExecuteNonQuery();
 93                 }
 94                 catch (Exception ex)
 95                 {
 96                     throw new Exception("DeleteCMD:ExecuteNonQuery\n" + ex.Message);
 97                 }
 98             }
 99 
100             /// <summary>
101             /// Select查表
102             /// </summary>
103             /// <param name="SqlString">一条完整、直接执行的select语句</param>
104             /// <param name="sqlconn">一个SQL连接</param>
105             /// <returns>DataTable</returns>
106             public static DataTable SelectTable(string SqlString,SqlConnection sqlconn)
107             {
108                 using (DataTable dt = new DataTable())
109                 {
110                     using (SqlDataAdapter da = new SqlDataAdapter(SqlString, sqlconn))
111                     {
112                         try
113                         {
114                             da.Fill(dt);
115                             return dt;
116                         }
117                         catch (Exception ex)
118                         {
119                             throw new Exception("SelectTable:\n" + ex.Message);
120                         }
121                     }
122                 }
123             }
124 
125             /// <summary>
126             /// Select查值
127             /// </summary>
128             /// <param name="SqlString">一条完整、直接执行的select语句</param>
129             /// <param name="sqlconn">一个SQL连接</param>
130             /// <returns>ExecuteScalar</returns>
131             public static object SelectValue(string SqlString, SqlConnection sqlconn)
132             {
133                 try
134                 {
135                     SqlCommand cmd = new SqlCommand(SqlString, sqlconn);
136                     if (sqlconn.State != ConnectionState.Open)
137                         sqlconn.Open();
138                     return cmd.ExecuteScalar();
139                 }
140                 catch (Exception ex)
141                 {
142                     throw new Exception("SelectValue:\n" + ex.Message);
143                 }
144             }
145 
146             /// <summary>
147             /// 执行存储过程,无返回值
148             /// </summary>
149             /// <param name="sqlString">存储过程执行语句,需包含Exec </param>
150             /// <param name="parameters">SqlParameter</param>
151             /// <param name="sqlconn">一个SQL连接</param>
152             /// <returns>ExecuteNonQuery执行结果</returns>
153             public static void ExecProcNonReturn(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn)
154             {
155                 try
156                 {
157                     SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
158                     cmd.Parameters.AddRange(parameters);
159                     if (sqlconn.State != ConnectionState.Open)
160                         sqlconn.Open();
161                     cmd.ExecuteNonQuery();
162                 }
163                 catch (Exception ex)
164                 {
165                     throw new Exception("ExecProcNonReturn:ExecuteNonQuery\n" + ex.Message);
166                 }
167             }
168 
169             /// <summary>
170             /// 执行存储过程,并直接返回执行的结果
171             /// </summary>
172             /// <param name="sqlString">存储过程执行语句,需包含Exec </param>
173             /// <param name="parameters">SqlParameter</param>
174             /// <param name="sqlconn">一个SQL连接</param>
175             /// <returns>ExecuteNonQuery执行结果</returns>
176             public static object ExecProc(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn)
177             {
178                 try
179                 {
180                     SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
181                     cmd.Parameters.AddRange(parameters);
182                     if (sqlconn.State != ConnectionState.Open)
183                         sqlconn.Open();
184                     return cmd.ExecuteScalar();
185                 }
186                 catch (Exception ex)
187                 {
188                     throw new Exception("ExecProc:ExecuteScalar\n" + ex.Message);
189                 }
190             }
191 
192             /// <summary>
193             /// 执行存储过程,带一个返回参数并返回此参数的执行结果
194             /// </summary>
195             /// <param name="sqlString">存储过程执行语句,需包含Exec </param>
196             /// <param name="parameters">SqlParameter</param>
197             /// <param name="parameter_out">SqlParameter.Direction = ParameterDirection.Output;</param>
198             /// <param name="sqlconn">一个SQL连接</param>
199             /// <returns>ExecuteNonQuery执行结果</returns>
200             public static object ExecProc(string sqlString, SqlParameter[] parameters, 
201                 SqlParameter parameter_out, SqlConnection sqlconn)
202             {
203                 try
204                 {                    
205                     SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
206                     cmd.Parameters.AddRange(parameters);
207                     cmd.Parameters.Add(parameter_out);
208                     if (sqlconn.State != ConnectionState.Open)
209                         sqlconn.Open();
210                     cmd.ExecuteNonQuery();
211                     return parameter_out.Value;
212                 }
213                 catch (Exception ex)
214                 {
215                     throw new Exception("ExecProc:ExecuteNonQuery\n" + ex.Message);
216                 }
217             }
218         }
219     }
220 }

 

转载于:https://www.cnblogs.com/leavind/p/5258779.html

相关文章:

  • ubuntu14.04 忘记root密码
  • 神奇语言python文件操作
  • Microsoft SQL Server登陆Linux
  • VSCode Python开发环境配置
  • 企业是怎么给MYSQL赋予用户权限
  • mongoDB 删除集合后,空间不释放
  • mysql分页(ajax)
  • BZOJ 1565 植物大战僵尸(最大权闭合图)
  • UVa 1586 - Molar mass
  • 072:【Django数据库】ORM聚合函数详解-aggregate和annotate
  • 配置ssh的双机信任
  • hdfs远程连接异常
  • linux if 命令判断条件总结
  • 【M15】了解异常处理(exception handling)的成本
  • 【代码】模板实现双向链表的去重、拼接、合并、排序
  • “大数据应用场景”之隔壁老王(连载四)
  • 【剑指offer】让抽象问题具体化
  • css选择器
  • iOS编译提示和导航提示
  • node.js
  • October CMS - 快速入门 9 Images And Galleries
  • TypeScript迭代器
  • Vue全家桶实现一个Web App
  • 给github项目添加CI badge
  • 记一次删除Git记录中的大文件的过程
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 十年未变!安全,谁之责?(下)
  • 手写双向链表LinkedList的几个常用功能
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 小程序开发中的那些坑
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 转载:[译] 内容加速黑科技趣谈
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #NOIP 2014# day.1 T2 联合权值
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (转) ns2/nam与nam实现相关的文件
  • (转)h264中avc和flv数据的解析
  • (转)JAVA中的堆栈
  • (转)ORM
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • @Autowired自动装配
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [20171113]修改表结构删除列相关问题4.txt
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [CentOs7]图形界面