C# SQL Server的封裝(SQLDataAdapter等)之一(共二)
本文章僅是本人學習後總結,如有錯誤之處,請大家指正。
既然你看到這篇文章,說明最少懂,如果看完了還不懂。。。。。你怎麼不上天呢。。。
以下Demo均以SQL Server為例說明。
七個DEMO分別說明以下情況
1.connection字串
2.Command的常用的三個方法。
3.SqlDataApater的Fill方法。
4.SqlDataAdapter的Update和SqlDataBuilder之間的協作。
5.如何執行儲存。
6.如何執行事務。
7.簡單的擴充套件,針對三層架構,表對應類,封裝快速獲取資料。
Demo1.
說明:SQL的連線字串,舉例說明常見的SQL連線字串的。
//實際儲存字串的欄位
private static string _conStr;
//獲取字串,這是本人常用的方式
public static string ConStr {
get {
if (string.IsNullOrEmpty(_conStr))
{
//需要引用System.Configuration
//獲取app.config中的配置檔案,這個配置檔案指的是程式執行目錄下的config檔案,而不是指專案下的配置檔案
_conStr = System.Configuration.ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;
}
return _conStr;
}
}
//Config檔案內容
<configuration >
<connectionStrings>
<!--有很多連線字串方式,這兩種最常見-->
<!--常見的方式1:建議採用此方法-->
<add name="SQL" connectionString="Data Source=.;Initial Catalog=DemoDate;User ID=sa;Password=123.com;"/>
<!--常見的方式2:能看懂即可-->
<add name="SQL1" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;" />
</connectionStrings>
</configuration>
Demo2:
說明:封裝SQL的Command的常用的三個方法
//params 所修飾的引數,必須為最後一個,且引數型別必須為陣列,表明不確定引數個數
//封裝SQLExecuteNonQuery返回所影響的行數
public static int SQLExecuteNonQuery(string comStr, params SqlParameter[] paramters)
{
//使用using,可以在對應呼叫完成後,自動呼叫Close
using (SqlConnection connection = new SqlConnection(SQLHelper.ConStr))
{
using (SqlCommand command = connection.CreateCommand())
{
try
{
command.CommandText = comStr;
if (paramters != null)
{
command.Parameters.AddRange(paramters);
}
//必須先將連線開啟
connection.Open();
return command.ExecuteNonQuery();
}
catch (Exception ex)
{
//異常後進行連線的關閉
connection.Close();
throw ex;
}
}
}
}
//封裝ExecuteScalar方法,返回單行單列值
//使用泛型方法,內部進行型別轉換,當然你得確保型別轉換不會出錯
public static T SQLExecuteScalar<T>(string comStr,params SqlParameter[] paramters)
{
//使用using,可以在對應呼叫完成後,自動呼叫Close
using (SqlConnection connection = new SqlConnection(SQLHelper.ConStr))
{
using (SqlCommand command = connection.CreateCommand())
{
try
{
command.CommandText = comStr;
if (paramters != null)
{
command.Parameters.AddRange(paramters);
}
//必須先將連線開啟,在執行command的方法之前開啟就可以,沒必有建立connection就進行開啟連線
connection.Open();
return (T)command.ExecuteScalar();
}
catch (Exception ex)
{
//異常後進行連線的關閉
connection.Close();
throw ex;
}
}
}
}
//封裝ExecuteReader方法,這樣會產生一個問題Connection什麼時候進行關閉,呼叫完方法後,Reader一直進行讀取connection未關閉,怎麼辦
public static SqlDataReader SQLDataReader(string comStr, params SqlParameter[] paramters)
{
using (SqlConnection connection = new SqlConnection(SQLHelper.ConStr))
{
using (SqlCommand command = connection.CreateCommand())
{
try
{
command.CommandText = comStr;
if (paramters != null)
{
command.Parameters.AddRange(paramters);
}
//必須先將連線開啟
connection.Open();
//CommandBehavior.CloseConnection
//在執行該命令時,如果關閉關聯的 DataReader 物件,則關聯的 Connection 物件也將關閉。
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
//異常後進行連線的關閉
connection.Close();
throw ex;
}
}
}
}
Demo3:
說明:SqlDataApater的Fill方法
//使用SqlDataAdapter進行資料的填充
//此處comStr引數必須為SELECT
public static DataSet SQLAdapter(string comStr, params SqlParameter[] paramters)
{
DataSet dSet=new DataSet();
using (SqlDataAdapter adapter = new SqlDataAdapter(comStr, SQLHelper.ConStr))
{
try
{
if (paramters != null)
{
adapter.SelectCommand.Parameters.AddRange(paramters);
}
adapter.Fill(dSet);
return dSet;
}
catch (Exception ex)
{
adapter.SelectCommand.Connection.Close();
throw ex;
}
}
}
以上沒有進行詳細測試,只是正常生成,自己學習時,請多測試,練習。
相關推薦
C# SQL Server的封裝(SQLDataAdapter等)之一(共二)
本文章僅是本人學習後總結,如有錯誤之處,請大家指正。 既然你看到這篇文章,說明最少懂,如果看完了還不懂。。。。。你怎麼不上天呢。。。 以下Demo均以SQL Server為例說明。 七個DEMO分別說明以下情況 1.connection字串 2.
[C#]SQL Server Express LocalDb(SqlLocalDb)的一些體會
con director cal zh-cn security href sof [] each 真覺得自己的知識面還是比較窄,在此之前,居然還不知道SqlLocalDb。 SqlLocalDb是啥?其實就是簡化SQL Server的本地數據庫,可以這樣子說,SQL Se
c#+Sql server 綁碼程式 原始碼
c# source code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usi
(C# SQL Server) 資料庫連線字串
Debug 一個SQL Server 2008 資料庫連線的問題,老是提示: [67944] System.Data.SqlClient.SqlException (0x80131904): 在與 SQL Server 建立連線時出現與網路相關
(C# SQL Server) 數據庫連接字符串
serve 遠程 system frame catalog 允許 provider win32 init Debug 一個SQL Server 2008 數據庫連接的問題,老是提示: [67944] System.Data.SqlClient.SqlException (0
c# SQl server資料庫與下拉框的繫結
最近接了一個大單子,是讓寫個公司倉庫的進銷存系統,工期是25天,工作量也比較大,對於我來說,真的是一個很大的考驗。裡面對於c# sql資料庫的操作比較多,尤其是對資料的處理以及繫結,下面我來介紹下sql資料庫與下拉框的繫結。: 在區域網的商業軟體中下拉框繫結資
NavicatPremium 連線SQL Server 、MySQL等
簡介 Navicat premium是一款資料庫管理工具。將此工具連線資料庫,你可以從中看到各種資料庫的詳細資訊。包括報錯,等等。當然,你也可以通過他,登陸資料庫,進行各種操作。Navicat Pre
c# SQL SERVER 資料寫入
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data.SqlClient
c# sql server 與dataGridView 繫結資料
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System
(4.18)SQL server 2008一些常見配置之二(鏈接服務器配置,訪問其他數據庫)
修改 beta pro ntp 查看版本 collation chang 手工 lin SQL server 2008一些常見配置之二(鏈接服務器配置,訪問其他數據庫) 一、訪問Oracle數據庫 Oracle是目前排名第一的數據庫,一般對數據安全和
(轉)SQLServer_十步優化SQL Server中的數據訪問 二
延遲加載 檢索 tro 最佳實踐 資源 重復調用函數 嵌套循環 exec desc 原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第五步:識別低效TSQL,采用最佳實踐重構和
SQL Server 索引結構及其使用(二)
SQL Server 索引結構及其使用(二) 作者:freedk 改善SQL語句 很多人不知道SQL語句在SQL SERVER中是如何執行的,他們擔心自己所寫的SQL語句會被SQL SERVER誤解。比如: select * from table1 where nam
SQL Server 性能優化實戰系列(二)
千萬 binary offset 這樣的 至少 部分 擁有 center 如何解決 SQL Server datetime數據類型設計、優化誤區 一、場景 在SQL Server 2005中,有一個表TestDatetime,其中Dates這個字段的數據類型是datetim
Flume抽取SQL Server設計方案具體實現(二)觸發器
上一篇將瞭如何使用Flume收集SQL server Board中的新增資料進行處理,如下針對更新的資料進行分析需求:對Board表更新的資料進行處理1.建立一個存更新資料的表Tri_Board_Update,表結構基本和原表機構一樣,但需要新增Update_id(唯一標識列
C# 連接SQL Server數據庫的幾種方式--server+data source等方式
如何使用 sel 特定 html 項目 true -- 計算機 技術分享 C# 連接SQL Server數據庫的幾種方式--server+data source等方式 如何使用Connection對象連接數據庫? 對於不同的.NET數據提供者,ADO.NET采用不同
C#封裝SQLDMO操作SQL Server 2000的類
封裝SQLDMO操作的類,能完成常用的SQL Server 2000管理工作。 使用前請新增 "Microsoft SQLDMO Object Library" COM 引用。 有部分程式碼借鑑網路資料,再次向原作者表示感謝。 /* ******************
C# 連線SQL Server資料庫的幾種方式--server+data source等方式
<span style="font-family: Arial; background-color: rgb(255, 255, 255);">如何使用Connection物件連線資料庫?</span> 對於不同的.NET資料提供者,ADO.NET
C#與SQL Server儲存過程之一(建立):使用C#建立SQL Server的儲存過程
通常,開發人員使用的是T-SQL來建立SQL Server的儲存過程、函式和觸發器。而現在的SQL Server 2005已經完全支援.NET通用語言執行時(CLR)了。這就意味著,你可以使用.NET的語言,如C#、VB.NET之類的來開發SQL Server的儲存過程、
sql server編寫簡潔四則運算表示式指令碼實現計算批次功能(C#等其它程式語言也能直接用此通用表示式)
問題: 在資料庫程式設計開發中,有時會遇到資料量比較大的情況,如果直接大批量進行新增資料、修改資料、刪除資料,就會是比較大的事務,事務日誌也比較大,耗時久的話會對正常操作造成一定的阻塞。雖不至於達到刪庫跑路的程度,但也嚴重影響了使用者體驗,老是卡巴宕機的感覺。這時我們可以對這個大批量操作進行分小批事務操作處
C# SQL封裝(二)
c# sql封裝(二)接 C# SQL封裝(一)開始操作數據庫的測試 :using System;using System.Collections.Generic;using System.Linq;using System.Text;using DBDome.com;using DBDome.model;u