最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口

 更新時間:2024年04月29日 09:13:33   作者:初九之潛龍勿用  
ADO.NET?中的數(shù)據(jù)提供者對象提供了IDbConnection、IDbCommand、IDbDataParameter等通用數(shù)據(jù)接口,本文將利用這些對象實現(xiàn)一個通用方法以訪問和操作數(shù)據(jù)庫內(nèi)容,需要的朋友可以參考下

關(guān)于數(shù)據(jù)接口

在.net 應(yīng)用中,與數(shù)據(jù)庫進行連接、訪問和執(zhí)行經(jīng)常會用到數(shù)據(jù)接口的相關(guān)對象,如下:

1、 Connection

表示一個到數(shù)據(jù)庫的打開的連接,是連接數(shù)據(jù)必不可少的對象。

2、 Command

命令對象,表示要對數(shù)據(jù)源連接執(zhí)行的 SQL 語句或存儲過程,以獲取返回結(jié)果或執(zhí)行返回值。

3、 DataParameter

用于表示Command命令對象需要的參數(shù)設(shè)置,雖然這是一個可選項,但在實際的應(yīng)用中幾乎都會使用到

 ADO.NET 中的數(shù)據(jù)提供者對象提供了IDbConnection、IDbCommand、IDbDataParameter等通用數(shù)據(jù)接口,本文將利用這些對象實現(xiàn)一個通用方法以訪問和操作數(shù)據(jù)庫內(nèi)容。

對象執(zhí)行流程

首先需要創(chuàng)建連接對象,成功后下達符合對應(yīng)數(shù)據(jù)庫規(guī)范的命令指令,該指令可能包括需要的參數(shù)對象(需要定義名稱和賦值等操作),大體流程如下圖:

范例運行環(huán)境

操作系統(tǒng): Windows Server 2019 DataCenter

.net版本: .netFramework4.7.1 或以上

開發(fā)工具:VS2019  C#

數(shù)據(jù)庫:在這里我們以支持 Oracle 9i、MS SQL Server 2016、國產(chǎn)達夢數(shù)據(jù) 8 為例

設(shè)計與實現(xiàn)

引用

在實現(xiàn)方法前請引用如下代碼:

using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
using Dm;
using System.Collections;

GetConnection方法

GetConnection 方法返回 System.Data.IDbConnection 對象,其參數(shù)說明見下表:

序號參數(shù)名類型說明
1DbServerTypestring目前支持 "oracle"、 "dm8",其它字符串均視為 MS SQL Server
2ConnectionStringstring對應(yīng)數(shù)據(jù)庫的連接字符串

實現(xiàn)代碼如下:

public System.Data.IDbConnection GetConnection(string DbServerType,string ConnectionString)
{
	IDbConnection con = null;
	switch (DbServerType.ToLower())
	{
		case "oracle":
			con = new OracleConnection(ConnectionString);break;
        case "dm8":
            con = new DmConnection(ConnectionString); break;
        default:
			con = new SqlConnection(ConnectionString);   break;
	}
 
	return con;
 
}

GetCommand方法

GetCommand 方法返回 System.Data.IDbCommand 對象,其參數(shù)說明見下表:

序號參數(shù)名類型說明
1dbServerTypestring目前支持 "oracle"、 "dm8",其它字符串均視為 MS SQL Server
2

cmdText

string要執(zhí)行的SQL語句命令行
3parasArrayList

要賦值的參數(shù)對象,逐個添加到ArrayList里,請注意參數(shù)為實體數(shù)據(jù)參數(shù)對象,如 MS SQL Server ,請傳遞如下代碼:

ArrayList.Add(new SqlParameter("參數(shù)名",參數(shù)值)); 

4conIDbConnection要傳遞的Connection對象,可能過前面所述的GetConnection方法獲取

實現(xiàn)代碼如下:

public IDbCommand GetCommand(string dbservertype,string cmdText,ArrayList paras,IDbConnection con)
		{
			IDbCommand cmd = null;
			switch (dbservertype.ToLower())
			{
				case "oracle": cmd = new OracleCommand(cmdText,(OracleConnection)con);
					break;
                case "dm8":
                    cmd = new DmCommand(cmdText, (DmConnection)con);
                    break;
                default:    cmd = new SqlCommand(cmdText,(SqlConnection)con);        break;
			}
			if(paras!=null)
			{
				for(int i=0;i<paras.Count;i++)
				{
					cmd.Parameters.Add(GetParameter(dbservertype,paras[i]));
				}
			}
			return cmd;
		}

請注意,代碼中的 GetParameter 方法我們將后續(xù)做介紹。

GetParameter方法

GetParameter 方法返回 System.Data.IDbDataParameter 對象,其參數(shù)說明見下表:

序號參數(shù)名類型說明
1dbServerTypestring目前支持 "oracle"、 "dm8",其它字符串均視為 MS SQL Server
2paraobject傳遞的單一參數(shù)對象

實現(xiàn)代碼如下:

public System.Data.IDbDataParameter GetParameter(string dbservertype,object para)
{
	IDbDataParameter pa = null;
	switch (dbservertype.ToLower())
	{
 
		case "oracle": pa =(OracleParameter)para; 
			break;
        case "dm8":
            para =  (DmParameter)pa;
            break;
        default: para =(SqlParameter)pa;
            break;
	}
	return pa;
}

小結(jié)

到此這篇關(guān)于C#實現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口的文章就介紹到這了,更多相關(guān)C#實現(xiàn)IDbConnection/IDbCommand接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#語法相比其它語言比較獨特的地方(一)

    C#語法相比其它語言比較獨特的地方(一)

    這篇文章主要介紹了C#語法相比其它語言比較獨特的地方(一),本文講解了switch語句可以用來測試string型的對象、多維數(shù)組、foreach語句、索引器和Property等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • c#使用listbox的詳細方法和常見問題解決

    c#使用listbox的詳細方法和常見問題解決

    這篇文章介紹了c#使用listbox的詳細方法和常見問題解決,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C# Newtonsoft.Json 解析多嵌套json 進行反序列化的實例

    C# Newtonsoft.Json 解析多嵌套json 進行反序列化的實例

    這篇文章主要介紹了C# Newtonsoft.Json 解析多嵌套json 進行反序列化的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#中的委托數(shù)據(jù)類型簡介

    C#中的委托數(shù)據(jù)類型簡介

    委托是一個類型安全的對象,它指向程序中另一個以后會被調(diào)用的方法(或多個方法)。通過本文給大家介紹C#中的委托數(shù)據(jù)類型簡介,對c委托類型相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • C#如何通過RFC連接sap系統(tǒng)

    C#如何通過RFC連接sap系統(tǒng)

    這篇文章主要為大家詳細介紹了C#如何通過RFC連接sap系統(tǒng)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#構(gòu)造函數(shù)詳解

    C#構(gòu)造函數(shù)詳解

    本文詳細講解了C#中的構(gòu)造函數(shù),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 基于C#實現(xiàn)壓縮和解壓文件及文件夾

    基于C#實現(xiàn)壓縮和解壓文件及文件夾

    這篇文章主要為大家詳細介紹了基于C#實現(xiàn)壓縮和解壓文件及文件夾的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#中foreach語句使用break暫停遍歷的方法

    C#中foreach語句使用break暫停遍歷的方法

    這篇文章主要介紹了C#中foreach語句使用break暫停遍歷的方法,涉及C#中break語句跳出foreach循環(huán)的使用技巧,非常具有實用價值,是C#初學(xué)者必須掌握的重要技巧,需要的朋友可以參考下
    2015-04-04
  • C#使用LINQ查詢操作符實例代碼(一)

    C#使用LINQ查詢操作符實例代碼(一)

    這篇文章介紹了C#使用LINQ查詢操作符的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#使用Win2D在UWP程序中實現(xiàn)2D繪圖

    C#使用Win2D在UWP程序中實現(xiàn)2D繪圖

    這篇文章介紹了C#使用Win2D在UWP程序中實現(xiàn)2D繪圖的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

明光市| 蒙山县| 鹿泉市| 洛扎县| 涡阳县| 桐乡市| 桂东县| 靖边县| 汾西县| 西贡区| 都兰县| 隆昌县| 曲靖市| 永川市| 永川市| 洛浦县| 青海省| 吉隆县| 房产| 房产| 体育| 东平县| 台安县| 鄂州市| 霍林郭勒市| 三明市| 文化| 沂南县| 鄯善县| 宿松县| 阿坝| 通河县| 潜山县| 晋江市| 肥西县| 霍邱县| 奉新县| 昭觉县| 含山县| 疏附县| 昌宁县|