欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現IDbConnection/IDbCommand等相關通用數據接口

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

關于數據接口

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

1、 Connection

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

2、 Command

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

3、 DataParameter

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

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

對象執(zhí)行流程

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

范例運行環(huán)境

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

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

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

數據庫:在這里我們以支持 Oracle 9i、MS SQL Server 2016、國產達夢數據 8 為例

設計與實現

引用

在實現方法前請引用如下代碼:

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

GetConnection方法

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

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

實現代碼如下:

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 對象,其參數說明見下表:

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

cmdText

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

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

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

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

實現代碼如下:

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 對象,其參數說明見下表:

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

實現代碼如下:

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;
}

小結

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

相關文章

  • 詳解C#如何將枚舉以下拉數據源的形式返回給前端

    詳解C#如何將枚舉以下拉數據源的形式返回給前端

    這篇文章主要為大家詳細介紹了C#如何實現將枚舉以下拉數據源的形式返回給前端,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • c#二維碼生成的代碼分享

    c#二維碼生成的代碼分享

    c#生成二維碼實現示例代碼分享,生成方法是調用外網API,為了不直接調用別人的接口,創(chuàng)建一個QrImg.aspx用于顯示二維碼,傳參數即可
    2013-12-12
  • C#根據反射和特性實現ORM映射實例分析

    C#根據反射和特性實現ORM映射實例分析

    這篇文章主要介紹了C#根據反射和特性實現ORM映射的方法,實例分析了反射的原理、特性與ORM的實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C# WinForm-Timer控件的使用

    C# WinForm-Timer控件的使用

    這篇文章主要介紹了C# WinForm-Timer控件的使用,幫助大家更好的理解和學習c# winform,感興趣的朋友可以了解下
    2020-11-11
  • KMP算法的C#實現方法

    KMP算法的C#實現方法

    這篇文章主要介紹了KMP算法的C#實現方法,代碼簡潔實用,需要的朋友可以參考下
    2014-09-09
  • 淺談C#中Md5和Sha1兩種加密方式

    淺談C#中Md5和Sha1兩種加密方式

    這篇文章主要介紹了淺談C#中Md5和Sha1兩種加密方式的相關資料,需要的朋友可以參考下
    2015-07-07
  • C#判斷三角形的類型

    C#判斷三角形的類型

    這篇文章主要介紹了C#判斷三角形的類型的方法,通過輸入三角形的三條邊長,判斷是否能構成一個三角形,感興趣的小伙伴們可以參考一下
    2015-11-11
  • C#使用Ado.Net更新和添加數據到Excel表格的方法

    C#使用Ado.Net更新和添加數據到Excel表格的方法

    這篇文章主要介紹了C#使用Ado.Net更新和添加數據到Excel表格的方法,較為詳細的分析了OLEDB的原理與使用技巧,可實現較為方便的操作Excel數據,需要的朋友可以參考下
    2015-04-04
  • asp.net(C#)清除全部Session與單個Session的方法

    asp.net(C#)清除全部Session與單個Session的方法

    下面小編就為大家?guī)硪黄猘sp.net(C#)清除全部Session與單個Session的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C#實現掃描局域網內的所有IP和端口

    C#實現掃描局域網內的所有IP和端口

    這篇文章主要為大家詳細介紹了如何利用C#實現掃描局域網內的所有IP和端口的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12

最新評論