SQL API Reference
SQL 整合了原生的 SqlConnection
, SqlCommand
與 SqlTransaction
... 等物件,提供簡單的方法呼叫。
Struct
Struct | 描述 |
---|---|
SQL([bool transaction]) | 初始化連線物件,會讀取 App.config 中的設定進行連線 |
SQL(string dbHost, string dbName, string dbAct, string dbPwd[, bool transaction]) | 初始化連線物件,會以輸入的連線資訊進行連線 |
參數說明
Args | 描述 |
---|---|
transaction | 是否開啟 transaction 功能,預設 false 關閉 |
dbHost | 資料庫主機位置 |
dbName | 資料庫名稱 |
dbAct | 連線帳號 |
dbPwd | 連線密碼 |
Property
名稱 | 類型 | 範圍 | 描述 |
---|---|---|---|
isConn | bool | public | 目前連線物件的連線狀態 (true 為連線中, false 為無連線) |
tran | SqlTransaction | public | 若有開啟 Traction 功能,可從外部操作 Commit() 或 Rollback() |
cmd | SqlCommand | public | 若有特殊 SQL 執行需求,可從外部操作該物件 |
Timeout | int | public | 設定連線逾時秒數,預設 15 秒 |
ApplicationIntent | string | public | 該連線所需意圖,預設 ReadWrite |
MultiSubnetFailover | bool | public | 是否啟用容錯移轉叢集執行個體,預設 false |
Encrypt | bool | public | 是否啟用加密,預設 false |
TrustServerCertificate | bool | public | 連結到執行個體時使用憑證,預設 false |
Method
quickQuery
名稱 | 類型 | 描述 |
---|---|---|
quickQuery<T>(string sql, [object param, [bool isfetchall]]) | T[ ] | 快速執行一次性 SQL 查詢。自動連線後自動執行 SQL 查詢語法,並將回傳的結果綁定到資料模型中回傳,最後關閉資料庫連線 |
參數說明
Args | 描述 |
---|---|
T | 泛型(指定資料模型 Model),如果不需要綁定,可給予 object 物件即可 |
sql | 欲執行的 T-SQL 語法 |
param | 如果 SQL 中含有 prepared statement,請給予資料模型綁定變數,預設為 null |
isfetchall | 是否取出所有資料,true 表示取出所有資料,false 表示只取第一筆資料。預設為 true |
備註:回傳為
null
表示 SQL 執行失敗。若執行成功但沒有資料時會回傳空陣列。
quickExec
名稱 | 類型 | 描述 |
---|---|---|
quickExec<T>(string sql, [object param, [object output]]) | T | 快速執行一次性 stored procedure。自動連線後自動執行 stored procedure,並將回傳的結果綁定到資料模型中回傳,最後關閉資料庫連線 |
參數說明
Args | 描述 |
---|---|
T | 泛型(指定資料模型 Model),如果不需要綁定,可給予 object 物件即可 |
sql | 欲執行的 Stored procedure 名稱 |
param | 如果 SQL 中含有 prepared statement,請給予資料模型綁定變數,預設為 null |
ouput | 使用 SqlDbType 指定 stored procedure 輸出的資料型態,將照指定的型態將資料轉換後填到 Model 中 |
備註:回傳為
null
表示 SQL 執行失敗。若執行成功但沒有資料時將回傳空物件。
quickBulkCopy
名稱 | 類型 | 描述 |
---|---|---|
quickBulkCopy(DataTable data, string tableName) | bool | 快速執行一次性大量資料寫入,自動連線後自動執行 Bulk Copy,並將回傳執行是否成功,最後關閉資料庫連線 |
參數說明
Args | 描述 |
---|---|
data | 根據欲寫入的 Table 組成一模一樣的 DataTable,並將資料預先存入,進行一次性寫入 |
tableName | 欲寫入的 Table 名稱 |
其他 Method
名稱 | 類型 | 描述 |
---|---|---|
connet() | void | 手動連線資料庫 [備註] |
getConnection() | SqlConnection | 取得目前的連線物件 v1.20 |
close() | void | 手動關閉資料庫連線 [備註] |
query(string sql, [object param]) | SqlDataReader | 手動執行查詢語法,如果連線過程中出現錯誤,則回傳 null 。sql 欲執行的 T-SQL 語法。param 如果 SQL 中含有 prepared statement,請給予資料模型綁定變數,預設為 null [備註] |
fetch |
T[ ] | 手動執行取出查詢結果的資料,並綁定到指定的資料模型中。T 泛型(指定資料模型 Model),如果不需要綁定,可給予 object 物件即可。r 資料讀取物件 (為 query 方法回傳的物件)。fetchAll 是否取出所有資料,true 表示取出所有資料,false 表示只取第一筆資料,預設為 true [備註] |
exec |
T | 手動執行 stored procedure,並將回傳的資料綁定到指定資料模型中。T 泛型(指定資料模型 Model),如果不需要綁定,可給予 object 物件即可。sql 欲執行的 Stored procedure 名稱。param 如果 SQL 中含有 prepared statement,請給予資料模型綁定變數,預設為 null 。output 使用 SqlDbType 指定 stored procedure 輸出的資料型態,將照指定的型態將資料轉換後填到 Model 中 [備註] |
getErrorMessage() | string | 取得最後一次 SQL 執行的錯誤訊息 |
備註:手動控制細部功能,如果需要在一次連線中執行多次 SQL ,請使用這些方法。雖然可以控制更多細節,但須自行控制流程、連線開起與關閉、try catch ... 等功能