热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.net连接sqlserver类库

1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Web;5
  1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Data.SqlClient;
6 using System.Data;
7 using System.Configuration;
8
9 public class SqlHelper
10 {
11 public static readonly string cOnString= ConfigurationManager.ConnectionStrings["sqlCon"].ConnectionString;
12 //增删改
13 public static bool ExeNonQuery(string sql, CommandType type, params SqlParameter[] lists)
14 {
15 bool bFlag = false;
16 using (SqlConnection con = new SqlConnection(conString))
17 {
18 SqlCommand cmd = new SqlCommand();
19 cmd.COnnection= con;
20 cmd.CommandText = sql;
21 cmd.CommandType = type;
22 if (lists != null)
23 {
24 foreach (SqlParameter p in lists)
25 {
26 cmd.Parameters.Add(p);
27 }
28 }
29 try
30 {
31 if (con.State == ConnectionState.Closed)
32 {
33 con.Open();
34 }
35 int result = cmd.ExecuteNonQuery();
36 if (result > 0)
37 {
38 bFlag = true;
39 }
40
41 }
42 catch { ;}
43 }
44 return bFlag;
45 }
46
47 //查.读
48 public static SqlDataReader ExeDataReader(string sql, CommandType type, params SqlParameter[] lists)
49 {
50 SqlConnection con = new SqlConnection(conString);
51 SqlCommand cmd = new SqlCommand();
52 cmd.COnnection= con;
53 cmd.CommandText = sql;
54 cmd.CommandType = type;
55
56 if (con.State == ConnectionState.Closed)
57 {
58 con.Open();
59 }
60
61 if (lists != null)
62 {
63 foreach (SqlParameter p in lists)
64 {
65 cmd.Parameters.Add(p);
66 }
67 }
68
69 SqlDataReader reader = cmd.ExecuteReader();
70
71 return reader;
72 }
73
74 //返回单个值
75 public static object GetScalar(string sql, CommandType type, params SqlParameter[] lists)
76 {
77 object returnValue = null;
78 using (SqlConnection con = new SqlConnection(conString))
79 {
80 SqlCommand cmd = new SqlCommand();
81 cmd.COnnection= con;
82 cmd.CommandText = sql;
83 cmd.CommandType = type;
84 if (lists != null)
85 {
86 foreach (SqlParameter p in lists)
87 {
88 cmd.Parameters.Add(p);
89 }
90 }
91 try
92 {
93 if (con.State == ConnectionState.Closed)
94 {
95 con.Open();
96 }
97 returnValue = cmd.ExecuteScalar();
98
99 }
100 catch { ; }
101 }
102 return returnValue;
103 }
104
105 //事务
106 public static bool ExeNonQueryTran(List list)
107 {
108 bool flag = true;
109 SqlTransaction tran = null;
110 using (SqlConnection con = new SqlConnection(conString))
111 {
112 try
113 {
114 if (con.State == ConnectionState.Closed)
115 {
116 con.Open();
117 tran = con.BeginTransaction();
118 foreach (SqlCommand com in list)
119 {
120 com.COnnection= con;
121 com.Transaction = tran;
122 com.ExecuteNonQuery();
123 }
124 tran.Commit();
125 }
126 }
127 catch (Exception ex)
128 {
129 Console.Write(ex.Message);
130 tran.Rollback();
131 flag = false;
132 }
133 }
134 return flag;
135 }
136 //返回DataTable
137 public static DataTable GetTable(string sql)
138 {
139 SqlConnection cOnn= new SqlConnection(conString);
140 SqlDataAdapter da = new SqlDataAdapter(sql, conn);
141 DataTable table = new DataTable();
142 da.Fill(table);
143 return table;
144 }
145 ///
146 /// 调用带参数的存储过程,返回dataTable
147 ///

148 /// 存储过程的名称
149 /// 一页几行
150 /// 当前页
151 /// 表名
152 /// dataTable
153 public static DataTable Proc_Table(string proc, int rows, int page, string tabName)
154 {
155 SqlConnection cOnn= new SqlConnection(conString);
156 SqlCommand cmd = new SqlCommand(proc, conn);
157 //指定调用存储过程
158 cmd.CommandType = CommandType.StoredProcedure;
159 cmd.Parameters.Add("@rows", rows);
160 cmd.Parameters.Add("@page", page);
161 cmd.Parameters.Add("@tabName", tabName);
162 SqlDataAdapter apt = new SqlDataAdapter(cmd);
163 DataTable dt = new DataTable();
164 apt.Fill(dt);
165 return dt;
166 }
167
168 //调用带参数的存储过程返回datatable
169 public static DataTable GetTablebyproc(string proc, int pageRow, int pagSize, string tabName)
170 {
171 SqlConnection cOnn= new SqlConnection(conString);
172 SqlCommand cmd = new SqlCommand(proc,conn);
173 cmd.CommandType = CommandType.StoredProcedure;
174 cmd.Parameters.Add("@rows", pageRow);
175 cmd.Parameters.Add("@pagesize", pagSize);
176 cmd.Parameters.Add("@tablename", tabName);
177 SqlDataAdapter apt = new SqlDataAdapter(cmd);
178 DataTable table = new DataTable();
179 apt.Fill(table);
180 return table;
181
182 }
183 public static DataTable GetDataByPager(string tbname, string fieldkey, int pagecurrent, int pagesize, string fieldshow, string fieldorder, string wherestring, ref int pagecount)
184 {
185 SqlParameter[] parameters = {
186 new SqlParameter("@tbname", SqlDbType.VarChar, 100),
187 new SqlParameter("@FieldKey", SqlDbType.VarChar, 100),
188 new SqlParameter("@PageCurrent", SqlDbType.Int),
189 new SqlParameter("@PageSize", SqlDbType.Int),
190 new SqlParameter("@FieldShow", SqlDbType.VarChar, 200),
191 new SqlParameter("@FieldOrder", SqlDbType.VarChar, 200),
192 new SqlParameter("@WhereString", SqlDbType.VarChar, 500),
193 new SqlParameter("@RecordCount", SqlDbType.Int),
194 };
195 parameters[0].Value = tbname;
196 parameters[1].Value = fieldkey;
197 parameters[2].Value = pagecurrent;
198 parameters[3].Value = pagesize;
199 parameters[4].Value = fieldshow;
200 parameters[5].Value = fieldorder;
201 parameters[6].Value = wherestring;
202 parameters[7].Direction = ParameterDirection.Output;
203 DataTable dt = ExecuteQuery("sp_get_data", parameters).Tables[0];
204 pagecount = Convert.ToInt32(parameters[7].Value);
205 return dt;
206 }
207 ///
208 /// 执行有参数的查询类存储过程
209 ///

210 /// 存储过程名
211 /// 存储过程的参数数组
212 /// 查询得到的结果集
213 public static DataSet ExecuteQuery(string pstrStoreProcedure, SqlParameter[] pParms)
214 {
215
216
217 DataSet dsResult = new DataSet();
218 SqlDataAdapter sda = new SqlDataAdapter();
219 SqlConnection con = new SqlConnection(conString);
220 SqlCommand cmd;
221 int intCounter;
222 try
223 {
224 if (con.State != ConnectionState.Open)
225 con.Open();
226 cmd = new SqlCommand();
227 cmd.COnnection= con;
228 cmd.CommandType = CommandType.StoredProcedure;
229 cmd.CommandText = pstrStoreProcedure;
230 if (pParms != null)
231 {
232 for (intCounter = 0; intCounter 0); intCounter++)
233 {
234 cmd.Parameters.Add(pParms[intCounter]);
235 }
236 }
237 sda.SelectCommand = cmd;
238 sda.Fill(dsResult);
239
240
241 }
242 catch (SqlException ex)
243 {
244 throw new Exception(ex.Message);
245 }
246 finally
247 {
248 //清空关闭操作
249 sda.Dispose();
250 con.Close();
251 con.Dispose();
252
253 }
254 return dsResult;
255 }
256 ///
257 /// 此分页存储过程直没修改 大家可以用自己的
258 ///

259 /// 表名
260 /// 需要返回的列
261 /// 排序的字段名
262 /// 页尺寸
263 /// 页码
264 /// 返回记录总数,非 0 值则返回
265 /// 设置排序类型,0表示升序非0降序
266 ///
267 ///
268 //public static DataSet GetList(string tableName, string getFields, string orderName, int pageSize, int pageIndex, bool isGetCount, bool orderType, string strWhere)
269 //{
270 // SqlParameter[] parameters = {
271 // new SqlParameter("@tblName", SqlDbType.VarChar, 255),
272 // new SqlParameter("@strGetFields", SqlDbType.VarChar, 1000),
273 // new SqlParameter("@fldName", SqlDbType.VarChar, 255),
274 // new SqlParameter("@PageSize", SqlDbType.Int),
275 // new SqlParameter("@PageIndex", SqlDbType.Int),
276 // new SqlParameter("@doCount", SqlDbType.Bit),
277 // new SqlParameter("@OrderType", SqlDbType.Bit),
278 // new SqlParameter("@strWhere", SqlDbType.VarChar, 1500)
279 // };
280 // parameters[0].Value = tableName;
281 // parameters[1].Value = getFields;
282 // parameters[2].Value = orderName;
283 // parameters[3].Value = pageSize;
284 // parameters[4].Value = pageIndex;
285 // parameters[5].Value = isGetCount ? 1 : 0;
286 // parameters[6].Value = orderType ? 1 : 0;
287 // parameters[7].Value = strWhere;
288 // return SqlHelper.RunProcedure("pro_pageList", parameters, "ds");
289 //}
290 //public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
291 //{
292 // using (SqlConnection cOnnection= new SqlConnection(conString))
293 // {
294 // DataSet dataSet = new DataSet();
295 // connection.Open();
296 // new SqlDataAdapter { SelectCommand = BuildQueryCommand(connection, storedProcName, parameters) }.Fill(dataSet, tableName);
297 // connection.Close();
298 // return dataSet;
299 // }
300 //}
301 ///
302 /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
303 ///

304 /// 数据库连接
305 /// 存储过程名
306 /// 存储过程参数
307 /// SqlCommand
308 private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
309 {
310 SqlCommand command = new SqlCommand(storedProcName, connection)
311 {
312 CommandType = CommandType.StoredProcedure
313 };
314 foreach (SqlParameter parameter in parameters)
315 {
316 if (parameter != null)
317 {
318 if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null))
319 {
320 parameter.Value = DBNull.Value;
321 }
322 command.Parameters.Add(parameter);
323 }
324 }
325 return command;
326 }
327 //根据表名和主键id来进行删除
328 public static int DelData(string tabName, string ID)
329 {
330 if (ID != string.Empty && ID != "0")
331 {
332 string sql = string.Format("delete from {0} WHERE (ID IN ({1}))", tabName, ID);
333 int delNum = ExecuteSql(sql);
334 return delNum;
335 }
336 return 0;
337 }
338 //增删改返回执行条数
339 public static int ExecuteSql(string SQLString)
340 {
341 int num2;
342 using (SqlConnection cOnnection= new SqlConnection(conString))
343 {
344 SqlCommand command = new SqlCommand(SQLString, connection);
345 try
346 {
347 connection.Open();
348 num2 = command.ExecuteNonQuery();
349 }
350 catch (SqlException exception)
351 {
352 connection.Close();
353 throw exception;
354 }
355 finally
356 {
357 if (command != null)
358 {
359 command.Dispose();
360 }
361 }
362 }
363 return num2;
364 }
365 }

 


推荐阅读
  • 定制数据层关键字:数据层,访问,元数据,数据访问模型http://www.gaodaima.com/35448.html定制数据层_sqlserver ... [详细]
  • 开发笔记:Xunit测试使用个人小结
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Xunit测试使用个人小结相关的知识,希望对你有一定的参考价值。因工作中用到xunit测试,故总结下用法,以供个人参考使 ... [详细]
  • 本文分析HashMap的实现原理。数据结构(散列表)HashMap是一个散列表(也叫哈希表),用来存储键值对( ... [详细]
  • 我有二进制格式的数据(十六进制:803bc8870a89),我需要将其转换为字符串,以便通过Jackcess在MSAccess数据库中保存二进制数据.我知道,我不认为在Java中使用 ... [详细]
  • 1、概念共享内存:共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同malloc()函数向不同进程返回了指向同一个 ... [详细]
  • 导读:今天编程笔记来给各位分享关于php变量命名规范是什么的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • ☞░前往老猿Python博客https:blog.csdn.netLaoYuanPython░一、引言在写该文之前,老猿就图像的一些运算已经单独边学边发了࿰ ... [详细]
  • 微软平台的软件开发系统中,有着一套自己的约定规则。熟悉.net开发的都会对异常处理不陌生,现阶段的各种编程语言中,都不乏异常处理机制,个中原理也都大同小异。sqlserver在批处 ... [详细]
  • 在目标队列中对消息进行排队时出现异常。错误:15404,状态:19。CouldnotobtaininformationaboutWindowsNTgroupuserSERVER ... [详细]
  • 这篇文章主要讲解了“SQLServer与Access数据库ASP代码有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深 ... [详细]
  • SqlServer分区表概述(转载)
    什么是分区表一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件 ... [详细]
  • 本文主要介绍关于数据库,sql,sqlserver的知识点,对【数据库——概述】和【数据库到底要怎么做】有兴趣的朋友可以看下由【用编程写诗】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的数据库相 ... [详细]
  • 开发笔记:携程2019校招编程题
    本文由编程笔记#小编为大家整理,主要介绍了携程2019校招编程题相关的知识,希望对你有一定的参考价值。携程今年的机试题为20道选择+3编程由于今天最后提交时第三题 ... [详细]
  • ConsumerConfiguration在kafka0.9使用JavaConsumer替代了老版本的scalaConsumer。新版的配置如下:bootstrap. ... [详细]
author-avatar
心灵de倾斜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有