ADO.NET

来源:http://www.cnblogs.com/anwser-jungle/archive/2016/06/20/5599358.html
-Advertisement-
Play Games

...


  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>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我也是看了網上的一個示例代碼後,在它的基礎上進行的修改。因為項目上會用到,我相信很多人的項目上也會用到。所以實現後,也趕緊分享出來,希望後來人不需要花費時間了。 提示:這裡用到了正則表達式,使用了一個第三方開源的組件:RegexKitLite (該組件如何使用網上教程很多) #pragma mark ...
  • ....... ...
  • ORACLE資料庫中的索引到底要不要定期重建呢? 如果不需要定期重建,那麼理由是什麼? 如果需要定期重建,那麼理由又是什麼?另外,如果需要定期重建,那麼滿足那些條件的索引才需要重建呢?關於這個問題,網上也有很多爭論,也一直讓我有點困惑,因為總有點不得廬山真面目的感覺,直到上周看到了一些資料,遂整理於 ...
  • 資料庫複習⑦ 2016年6月18日 20:03 Main DDL & DML & Views 數據定義語言、數據操縱語言、視圖 DDL數據定義語言 1.聲明一個關係表和刪除一個關係表 Simplest form is: CREATE TABLE <name> ( <list of elements> ...
  • SELECT-FROM-WHERE語句、單表查詢、多表查詢、 ...
  • 在Linux平臺中,對hostname的修改,是否對ORACLE資料庫實例或監聽進程有影響呢?如果有影響,又要如何解決問題呢?另外/etc/hosts下相關內容的修改,是否也會影響實例或監聽呢?這裡涉及的場景非常多,當然關係也非常複雜,我們下麵通過幾個例子來測試驗證一下。 如下所示,伺服器/etc/... ...
  • declare @temp Table ( nf varchar(50), yf varchar(50), sm varchar(50))declare @nd varchar(50), @yd int,@i intset @nd = '2016'if(@nd = year(getdate())) ...
  • 今天是我第一天開通博客,也是我的第一篇博客。以後為大家帶來第一篇關於學習技術性文章,這段時間會為大家帶來是SQL入門學習。希望大家堅持讀下去,因為學歷有限。我也是初學者。語言表達能力不好和知識點不足,我寫的不好,希望大家多多包涵。主要分享給那些想學SQL一個入門教程。主要是T-SQL語言為主。學完這 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...