码迷,mamicode.com
首页 > Web开发 > 详细

ADO.NET

时间:2016-06-20 06:31:17      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 
  6 using System.Configuration;
  7 using System.Data;
  8 using System.Data.SqlClient;
  9 using System.Web.UI.WebControls;
 10 
 11 namespace _20160308
 12 {
 13     public class SqlHelper1
 14     {
 15         #region 连接字符串connStr
 16         private static readonly string connStr = ConfigurationManager.ConnectionStrings["aspcourse"].ConnectionString;
 17         //private static readonly string connStr = System.Configuration.ConfigurationSettings.AppSettings["aspcourse"].ToString().Trim();
 18         #endregion
 19 
 20         #region ExecuteNonQuery执行非查询语句--不是Select 而是Insert into, Delete where, Update where
 21         /// <summary>
 22         /// 执行非查询语句
 23         /// </summary>
 24         /// <param name="sql">要执行的Sql语句(也可能是存储过程的名字,目前还不知道那时撒东东)</param>
 25         /// <param name="cmdType">要执行的类型(是存储过程还)是Sql语句[记得查下存储过程是什么鬼]</param>
 26         /// <param name="param">要执行的Sql语句的数组,params是可选参数,0个或者多个.可选参数只能放在最后---语法规定,No Why!</param>
 27         /// <returns>返回受影响的行数---也就是查询到的记录数嘛</returns>
 28         public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] param)
 29         {
 30             using(SqlConnection conn = new SqlConnection(connStr))
 31             {
 32                 conn.Open();                               
 33                 using(SqlCommand cmd = new SqlCommand(sql, conn))
 34                 {
 35                     cmd.CommandType = cmdType;
 36                     if (param != null && param.Length > 0)
 37                     {
 38                         cmd.Parameters.AddRange(param);
 39                     }
 40                     int Add_Rows = cmd.ExecuteNonQuery();
 41                     cmd.Parameters.Clear();//清空SqlCommand的参数列表---看出来没,param是SqlCommand对象的.
 42                     return Add_Rows;
 43                 }
 44             }
 45         }
 46         #endregion
 47 
 48         #region ExecuteScalar执行查询语句---select
 49         /// <summary>
 50         /// 执行查询语句
 51         /// </summary>
 52         /// <param name="sql">要执行的Sql语句(也可能是存储过程的名字,目前还不知道那时撒东东)</param>
 53         /// <param name="cmdType">要执行的类型(是存储过程还)是Sql语句[记得查下存储过程是什么鬼]</param>
 54         /// <param name="param">要执行的Sql语句的数组,params是可选参数,0个或者多个.可选参数只能放在最后---语法规定,No Why!</param>
 55         /// <returns>返回所查询的结果集的第一行第一列----注意是object类型(为撒不用泛型呢?-->记得改)</returns>
 56         public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] param)
 57         {
 58             using (SqlConnection conn = new SqlConnection(connStr))
 59             {
 60                 conn.Open();
 61                 using (SqlCommand cmd = new SqlCommand(sql, conn))
 62                 {
 63                     cmd.CommandType = cmdType;
 64                     if (param != null && param.Length > 0)
 65                     {
 66                         cmd.Parameters.AddRange(param);
 67                     }
 68 
 69                     cmd.Parameters.Clear();//清空SqlCommand的参数列表---看出来没,param是SqlCommand对象的.
 70                     return cmd.ExecuteScalar();
 71                 }
 72             }
 73         }
 74         #endregion
 75 
 76         #region 读取ExecuteReader--要求一直连接着
 77         /// <summary>
 78         ///  读取DataReader
 79         /// </summary>
 80         /// <param name="sql">要执行的Sql语句(也可能是存储过程的名字,目前还不知道那时撒东东)</param>
 81         /// <param name="cmdType">要执行的类型(是存储过程还)是Sql语句[记得查下存储过程是什么鬼]</param>
 82         /// <param name="param">要执行的Sql语句的数组,params是可选参数,0个或者多个.可选参数只能放在最后---语法规定,No Why!</param>
 83         /// <returns>返回SqlDataReader对象</returns>
 84         public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] param)
 85         {
 86             //额,为什么不用using是吧,因为数据库要一直连着啊.---如果我没猜错的话.
 87             SqlConnection conn = new SqlConnection(connStr);
 88             SqlCommand cmd = new SqlCommand(sql, conn);
 89             SqlDataReader dr = null;
 90             try
 91             {
 92                 conn.Open();
 93                 if (conn.State != ConnectionState.Open)
 94                     throw new Exception();
 95                 cmd.CommandType = cmdType;
 96                 if (param != null && param.Length > 0)
 97                 {
 98                     cmd.Parameters.AddRange(param);
 99                 }
100 
101                 dr = cmd.ExecuteReader();                
102             }
103             catch
104             {
105                //what should I do?
106                //可以什么都不做,哥直接抛给上层的catch--对否?
107             }
108             finally
109             {
110                 cmd.Parameters.Clear();//清空SqlCommand的参数列表---看出来没,param是SqlCommand对象的.                
111             }
112             return dr;
113         }
114         #endregion
115 
116         #region 获得GetDataTable
117         /// <summary>
118         /// 获得DataTable
119         /// </summary>
120         /// <param name="sql">要执行的Sql语句(也可能是存储过程的名字,目前还不知道那时撒东东)</param>
121         /// <param name="cmdType">要执行的类型(是存储过程还)是Sql语句[记得查下存储过程是什么鬼]</param>
122         /// <param name="param">要执行的Sql语句的数组,params是可选参数,0个或者多个.可选参数只能放在最后---语法规定,No Why!</param>
123         /// <returns>返回DataTable数据表</returns>      
124         public static DataTable GetDataTable(string sql, CommandType cmdType, params SqlParameter[] param)
125         {
126             using(SqlConnection conn = new SqlConnection(connStr))
127             {
128                 conn.Open();
129                 using(SqlCommand cmd = new SqlCommand(sql,conn))
130                 {
131                     cmd.CommandType = cmdType;
132                     if (param != null && param.Length > 0)
133                     {
134                         cmd.Parameters.AddRange(param);
135                     }
136                     SqlDataAdapter adapter = new SqlDataAdapter(cmd);
137                     //就一张表,可以获得多张表吗?
138                     DataTable tb = new DataTable();
139                     adapter.Fill(tb);
140                     return tb;
141                 }
142             }
143         }
144         #endregion
145 
146         #region 获得GetDataSet
147         /// <summary>
148         /// 获得DataSet
149         /// </summary>
150         /// <param name="sql">要执行的Sql语句(也可能是存储过程的名字,目前还不知道那时撒东东)</param>
151         /// <param name="cmdType">要执行的类型(是存储过程还)是Sql语句[记得查下存储过程是什么鬼]</param>
152         /// <param name="param">要执行的Sql语句的数组,params是可选参数,0个或者多个.可选参数只能放在最后---语法规定,No Why!</param>
153         /// <returns>返回一个DataSet数据集</returns>
154         public static DataSet GetDataSet(string sql, CommandType cmdType, params SqlParameter[] param)
155         {
156             using (SqlConnection conn = new SqlConnection(connStr))
157             {
158                 conn.Open();
159                 using (SqlCommand cmd = new SqlCommand(sql, conn))
160                 {
161                     cmd.CommandType = cmdType;
162                     if (param != null && param.Length > 0)
163                     {
164                         cmd.Parameters.AddRange(param);
165                     }
166                     SqlDataAdapter adapter = new SqlDataAdapter(cmd);
167                     DataSet ds = new DataSet();
168                     adapter.Fill(ds);
169                     return ds;
170                 }
171             }
172         }
173         #endregion
174     }
175 }

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!--
 3   有关如何配置 ASP.NET 应用程序的详细信息,请访问
 4   http://go.microsoft.com/fwlink/?LinkId=169433
 5   -->
 6 <configuration>
 7   <connectionStrings>
 8     <add name="LibrarySystem"
 9          connectionString="Database=LibrarySystem;
10          Server=localhost;
11          Integrated Security=false;
12          Uid=sa;Password=123;"
13          providerName="System.Data.SqlClient"/>
14   </connectionStrings>
15   
16   <system.web>
17     <compilation debug="true" targetFramework="4.5" />
18     <httpRuntime targetFramework="4.5" />
19   </system.web>
20 </configuration>

 

ADO.NET

标签:

原文地址:http://www.cnblogs.com/anwser-jungle/p/5599358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!