菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Text;
  4 using System.Data.SqlClient;
  5 using System.Data;
  6 using Microsoft.Win32;
  7
  8 namespace SqlHelp
  9 {
 10     /// <summary>
 11     /// 定义SqlParameter所需的参数对象
 12     /// </summary>
 13     public class Parameter
 14     {
 15         /// <summary>
 16         /// 参数集合构造函数
 17         /// </summary>
 18         /// <param name="paramname">参数名称</param>
 19         /// <param name="value">参数所对应的对象的值</param>
 20         public Parameter(string paramname, object value)
 21         {
 22             this.ParamName = paramname;
 23             this.Obj = value;
 24         }
 25         /// <summary>
 26         /// 参数名称
 27         /// </summary>
 28         public string ParamName
 29         {
 30             get;
 31             set;
 32         }
 33         /// <summary>
 34         /// 参数名称所对应的对象的值
 35         /// </summary>
 36         public object Obj
 37         {
 38             get;
 39             set;
 40         }
 41     }
 42     /// <summary>
 43     /// SqlHelper  ^_^ !
 44     /// </summary>
 45     public class SqlHelper
 46     {
 47         /// <summary>
 48         /// 连接字符串字段
 49         /// </summary>
 50         private static string connStr;
 51
 52         /// <summary>
 53         /// SQL连接字符串属性
 54         /// </summary>
 55         public static string ConnStr
 56         {
 57             get { return SqlHelper.connStr; }
 58             set { SqlHelper.connStr = value; }
 59         }
 60
 61         private static SqlParameter[] GetSqlParameterToArr(List<Parameter> listP)
 62         {
 63             List<SqlParameter> list = new List<SqlParameter>();
 64             foreach (var item in listP)
 65             {
 66                 list.Add(new SqlParameter(item.ParamName, item.Obj));
 67             }
 68             return list.ToArray();
 69         }
 70
 71         /// <summary>
 72         /// 执行TSQL 语句并返回受影响的行
 73         /// </summary>
 74         /// <param name="sql">需要执行的sql语句</param>
 75         /// <returns></returns>
 76
 77         public static int ExecuteNonQuery(string sql)
 78         {
 79             try
 80             {
 81                 using (SqlConnection conn = new SqlConnection(connStr))
 82                 {
 83                     conn.Open();
 84                     using (SqlCommand cmd = conn.CreateCommand())
 85                     {
 86                         cmd.CommandText = sql;
 87                         return cmd.ExecuteNonQuery();
 88                     }
 89                 }
 90             }
 91             catch (Exception ex)
 92             {
 93                 throw new Exception(ex.Message);
 94             }
 95         }
 96
 97         /// <summary>
 98         /// 执行TSQL 语句并返回受影响的行
 99         /// </summary>
100         /// <param name="sql">需要执行的sql语句</param>
101         /// <param name="paramList">参数的泛型集合</param>
102         /// <returns></returns>
103         public static int ExecuteNonQuery(string sql, List<Parameter> paramList)
104         {
105             try
106             {
107                 using (SqlConnection conn = new SqlConnection(connStr))
108                 {
109                     conn.Open();
110                     using (SqlCommand cmd = conn.CreateCommand())
111                     {
112                         cmd.CommandText = sql;
113                         cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
114                         return cmd.ExecuteNonQuery();
115                     }
116                 }
117             }
118             catch (Exception ex)
119             {
120                 throw new Exception(ex.Message);
121             }
122         }
123
124
125         /// <summary>
126         /// 执行查询,并返回查询所返回的结果集中第一行的第一列
127         /// </summary>
128         /// <param name="sql">需要执行的sql语句</param>
129         /// <returns></returns>
130
131         public static object ExecuteScalar(string sql)
132         {
133             try
134             {
135                 using (SqlConnection conn = new SqlConnection(connStr))
136                 {
137                     conn.Open();
138                     using (SqlCommand cmd = conn.CreateCommand())
139                     {
140                         cmd.CommandText = sql;
141                         return cmd.ExecuteScalar();
142                     }
143                 }
144             }
145             catch (Exception ex)
146             {
147                 throw new Exception(ex.Message);
148             }
149         }
150         /// <summary>
151         /// 执行查询,并返回查询所返回的结果集中第一行的第一列
152         /// </summary>
153         /// <param name="sql">需要执行的sql语句</param>
154         /// <param name="paramList">参数的泛型集合</param>
155         /// <returns></returns>
156         public static object ExecuteScalar(string sql, List<Parameter> paramList)
157         {
158             try
159             {
160                 using (SqlConnection conn = new SqlConnection(connStr))
161                 {
162                     conn.Open();
163                     using (SqlCommand cmd = conn.CreateCommand())
164                     {
165                         cmd.CommandText = sql;
166                         cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
167                         return cmd.ExecuteScalar();
168                     }
169                 }
170             }
171             catch (Exception ex)
172             {
173                 throw new Exception(ex.Message);
174             }
175         }
176
177
178         /// <summary>
179         /// 返回已经填充结果的DataSet
180         /// </summary>
181         /// <param name="sql">需要执行的sql语句</param>
182         /// <returns></returns>
183
184         public static DataSet ExecuteDataSet(string sql)
185         {
186             try
187             {
188                 using (SqlConnection conn = new SqlConnection(connStr))
189                 {
190                     conn.Open();
191                     using (SqlCommand cmd = conn.CreateCommand())
192                     {
193                         cmd.CommandText = sql;
194                         SqlDataAdapter adapter = new SqlDataAdapter(cmd);
195                         DataSet dataset = new DataSet();
196                         adapter.Fill(dataset);
197                         return dataset;
198                     }
199                 }
200             }
201             catch (Exception ex)
202             {
203                 throw new Exception(ex.Message);
204             }
205         }
206
207         /// <summary>
208         /// 返回已经填充结果的DataSet
209         /// </summary>
210         /// <param name="sql">需要执行的sql语句</param>
211         /// <param name="paramList">参数的泛型集合</param>
212         /// <returns></returns>
213         public static DataSet ExecuteDataSet(string sql, List<Parameter> paramList)
214         {
215             try
216             {
217                 using (SqlConnection conn = new SqlConnection(connStr))
218                 {
219                     conn.Open();
220                     using (SqlCommand cmd = conn.CreateCommand())
221                     {
222                         cmd.CommandText = sql;
223                         cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
224                         SqlDataAdapter adapter = new SqlDataAdapter(cmd);
225                         DataSet dataset = new DataSet();
226                         adapter.Fill(dataset);
227                         return dataset;
228                     }
229                 }
230             }
231             catch (Exception ex)
232             {
233                 throw new Exception(ex.Message);
234             }
235         }
236
237
238         /// <summary>
239         /// 返回查询结果集所返回的字段值的泛型集合
240         /// </summary>
241         /// <param name="sql">需要执行的sql语句</param>
242         /// <returns></returns>
243
244         public static List<object> ExecuteReader(string sql)
245         {
246             List<object> obj = new List<object>();
247             try
248             {
249                 using (SqlConnection conn = new SqlConnection(connStr))
250                 {
251                     conn.Open();
252                     using (SqlCommand cmd = conn.CreateCommand())
253                     {
254                         cmd.CommandText = sql;
255                         using (SqlDataReader reader = cmd.ExecuteReader())
256                         {
257                             while (reader.Read())
258                             {
259                                 for (int i = 0; i < reader.FieldCount; i++)
260                                 {
261                                     obj.Add(reader.IsDBNull(i) ? "空值" : reader.GetValue(i));
262                                 }
263                             }
264                             return obj;
265                         }
266                     }
267                 }
268             }
269             catch (Exception ex)
270             {
271                 throw new Exception(ex.Message);
272             }
273         }
274
275
276         /// <summary>
277         /// 返回查询结果集所返回的字段值的泛型集合
278         /// </summary>
279         /// <param name="sql">需要执行的sql语句</param>
280         /// <param name="paramList">参数的泛型集合</param>
281         /// <returns></returns>
282         public static List<object> ExecuteReader(string sql, List<Parameter> paramList)
283         {
284             List<object> obj = new List<object>();
285             try
286             {
287                 using (SqlConnection conn = new SqlConnection(connStr))
288                 {
289                     conn.Open();
290                     using (SqlCommand cmd = conn.CreateCommand())
291                     {
292                         cmd.CommandText = sql;
293                         cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
294                         using (SqlDataReader reader = cmd.ExecuteReader())
295                         {
296                             while (reader.Read())
297                             {
298                                 for (int i = 0; i < reader.FieldCount; i++)
299                                 {
300                                     obj.Add(reader.IsDBNull(i) ? "空值" : reader.GetValue(i));
301                                 }
302                             }
303                             return obj;
304                         }
305                     }
306                 }
307             }
308             catch (Exception ex)
309             {
310                 throw new Exception(ex.Message);
311             }
312         }
313
314
315         /// <summary>
316         /// 获取SqlServer数据库实例名数组
317         /// </summary>
318         /// <returns></returns>
319         public static string[] GetInstances()
320         {
321             RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
322             string[] instances = (string[])reg.GetValue("InstalledInstances", "");
323             try
324             {
325                 if (instances.Length > 0)
326                 {
327                     for (int i = 0; i < instances.Length; i++)
328                     {
329                         if (instances[i] == "MSSQLSERVER")
330                         {
331                             instances[i] = System.Environment.MachineName;
332                         }
333                         else
334                         {
335                             instances[i] = System.Environment.MachineName + @"\" + instances[i];
336                         }
337                     }
338                 }
339                 return instances;
340             }
341             catch (Exception ex)
342             {
343                 throw new Exception(ex.Message);
344             }
345         }
346     }
347 }

测试:
1、获取实例

窗体拖入ComboBox控件,设置name值为cbx_server

引入SqlHelper

using SqlHelp

窗体load事件加入:

1 cbx_server.Items .AddRange ( GetInstances());

2、执行带参数查询方法

窗体拖入按钮,name为Bt_Test,并且拖入TextBox控件,name值为txt_Param

引入SqlHelper

using SqlHelp

在按钮点击事件中加入:

 1         private void Bt_Test_Click(object sender, EventArgs e)
 2         {
 3             SqlHelper.ConnStr = @"Data Source=localhost;Initial Catalog=UFsystem;Integrated Security=True";
 4             Parameter param = new Parameter("@id", txt_Param.Text);
 5             List<Parameter> list = new List<Parameter>();
 6             list.Add(param);
 7             List<object> obj = SqlHelper.ExecuteReader(@"select * from ua_user where [email protected]", list);
 8             foreach (var item in obj)
 9             {
10                 Console.WriteLine(item);
11             }
12         }

输出:

admin
admin
空值
True
空值
空值
空值
空值

正在学习c#,有什么地方不对或不合适的请指教。

时间: 2024-10-11 14:54:18

菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类的相关文章

c#学习笔记04——ADO.NET

ADO.NET结构:ADO.NET建立在几个核心类之上,这些类可以分为两组 包含和管理数据的类:DataSet DataTable DataRow DataRelation... 链接数据源的类:Connection Command DataReader... 数据提供器与DataSet之间的关系 ADO.NET命名空间 数据提供器类 数据库访问方式 直接数据库访问:一种最容易的访问数据库的方式.使用直接数据库访问可以创建并执行SQL命令.使用直接访问数据库时,并不需要在内存中保存信息副本. 简

一个菜鸟程序员--再谈六月坚持英语学习

有时候想想,这人生就是一个又一个车站,走到一个站点,累了,歇一歇,明天还得继续出发,而一路上,也会遇到不同的人来陪我们一起走,大家或陌生,或熟悉,总会给我们孤独的心里一种温暖的陪伴.一个人的路,走的再坚强,再执着,也会感到寂寞,疲惫,无助.同行的人一个善意的微笑,一声热情的问候,一个关注的眼神,一句温馨的话语,都会让我们心中泛起阵阵暖意,心存感激. 英语的学习就是这样一种感觉,每当英语学习感到有些疲倦了看着为知笔记上大家的分享每天的学习内容,发现不是一个人在战斗,于是瞬间满血复活,继续投入到英语

ADO.NET复习——自己编写SqlHelper类

今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题都会要你自己手写一个SqlHelper的类,这考的是自己的基本功,如果一个根基不牢固的开发人员,你写的代码肯定好不到哪里去. 下面是SqlHelper的演示代码,一定要熟练: 1 public static SqlHelper 2 { 3 //这里定义一个字符串变量,把数据库连接字符串赋值给它,也可

《学习bash》笔记--进程处理

1.进程ID和作业编号 当通过附加&号后运行命令时,shell会响应如下: $ ls & [1] 3318 其中[1]是作业号,3318是进程号. 一个后台进程完成时,shell会给出作业编号信息,如下: [1]+  Done                    ls --color=auto 如果作业以非0状态退出时,shell指出其退出状态. 2.作业控制 作业编号可以使它们在shell命令中进行作业控制.一旦作业在后台运行,你可以让它一直运行,或把它放到前台,或向其发送信号. 2.

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t

【web开发学习笔记】Structs2 Action学习笔记(一)

1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和执行 2. <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern约定熟成只写/*,没必要写*.action 3. <

《Javascript权威指南》学习笔记之十一:处理字符串---String类和正则表达式

一.正则表达式的基本语法 1.概念:正则表达式由普通字符和特殊字符(元字符)组成的文本模式,该模式描述在查找字符串主体时待匹配的一个或者多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 普通字符包括所有的大小写字母字符.所有数字.所有标点符号及一些特殊符号.普通字符本身可以组成一个正则表达式,也可以和元字符组合组成一个正则表达式:而元字符则具有特殊的含义,包括().[].{}./.^.$.*.+.?...|.-.?:.?=.?! 2.基本语法 3.优先权含义 二.使用

《如何高效学习》读书笔记(一)——整体性学习策略

比喻的重要性华罗庚在讲“统筹”方法时,用了“怎样泡茶最省时间”的比喻.比喻的作用常常被我们忽视,仅仅把它当作文学中的修辞手段,是文学家用来增强表达效果的点缀和修饰.其实,比喻是我们必须掌握的站在外面看知识的本领.比喻不再局限于文学领域,它是我们的思维方式,更是我们的认知工具.莱考夫把隐喻定义为“以一种事物认知另一种事物”, 而这恰恰就是学习的本质! --------------------------------------------------------------------------

hadoop2.5.2学习及实践笔记(四)—— namenode启动过程源码概览

对namenode启动时的相关操作及相关类有一个大体了解,后续深入研究时,再对本文进行补充 >实现类 HDFS启动脚本为$HADOOP_HOME/sbin/start-dfs.sh,查看start-dfs.sh可以看出,namenode是通过bin/hdfs命令来启动 $ vi start-dfs.sh # namenodes NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes) echo "Starting namenodes o

【web开发学习笔记】Structs2 Action学习笔记(二)

action学习笔记2-有关于action method的讨论 Action执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐) 方法一 <struts> <constant name="struts.devMode" value="true" /> <package name="user" e