C 通用資料庫操作類

2022-01-10 12:56:46 字數 2161 閱讀 6962

使用ado.net的方式運算元據庫時,對於經常需要操作不同資料庫的同學,需要對不同的資料庫翻來覆去地寫操作類。

對ado.net,運算元據庫需要有幾個核心的東西(以mysql為例):

負責mysql的連線,在操作mysql前,需要先獲得連線。

負責具體命令的類,具體需要執行的sql的語句需要放到它的commandtext下。

對於查詢資料,可以選擇使用dataadapter將資料一次性取出到dataset或者datatable中。

對於查詢資料,同樣可以使用reader類對資料進行讀取,與adapter不同,reader一次取得一條資料,可以在資料獲取的過程中執行**,而不需要等待資料一次性取出。

對於mysql有以上的幾個主要類,對於sqlite、sql server,同樣類似。

可以使用乙個類來將他們包裝,然後編譯成dll,這樣如果需要操作不同的資料庫,只需要通過工廠建立不同的類即可。

使用ado.net方式的資料庫驅動,他們都滿足這麼幾個特點:

那麼問題就簡單了,我們只要操作他們的基類就可以了。然後他們的引用通過nuget獲得,這樣就能正常編譯。

//主要**

/// /// 可以根據支援的sql型別增加或刪除型別,需要增加或刪除對應的getconnection和getdbdataadapter方法。

///

public enum sqltype

/// /// 使用ado.net控制對資料庫的基本訪問方法,對同乙個活動物件(不關閉)執行緒安全。

///

public class sqlmanipulation : idisposable

#region private variables

private sqltype _sqltype;

private string _strdsn;

private dbconnection _conn;

private bool _disposed;

#endregion

private dbconnection getconnection()

}private dbdataadapter getdbdataadapter(string sql)

}private dbcommand getcommand(dbconnection conn, string strsql)

/// /// 初始化連線並開啟

///

///

public bool init()

catch (exception e)

}/// /// 執行select查詢語句,並返回datatable物件。

///

/// 需要執行的sql語句

/// datatable物件

public datatable excutequery(string strsql)

catch (exception e)

return dt;

}/// /// 執行非select語句,包括update delete insert

///

/// 需要執行的sql語句

/// 受影響的行數

public int excutenonquery(string strsql)

catch (exception e)

}/// /// 通過事務批量執行非查詢sql語句

///

/// 需要批量執行的sql

/// 受影響的行數,發生回滾則返回-1

public int executenonquerytransaction(liststrsqls)

transaction.commit();

return sumaffected;

}catch (exception e)

}}

(現在已經對mysql、sql server、posgresql、sqlite和odbc方式支援)

**重構

資料庫現在是持續保持開啟,擬增加其他選項

程式比較簡單,**放在github上,歡迎交流。

c 操作mysql通用類 C 資料庫操作通用類

usingsystem usingsystem.collections.generic usingsystem.linq usingsystem.text usingsystem.data.common usingsystem.data usingsystem.reflection namespac...

C 資料庫SQL操作通用類

剛學c 自己寫了乙個資料庫操作的通用類,以做復用。寫得不好,不斷更新中。1 using system 2 using system.data 3 using system.data.sqlclient 4 5 6 namespace qxtintface7 18 catch exception ex...

C SQL資料庫操作通用類

c sql資料庫操作通用類 using system using system.configuration using system.data using system.data.sqlclient using system.collections namespace framework.datab...