構(gòu)造函數(shù)
屬性
名稱 | 說(shuō)明 |
ConnectErrorMessage | 設(shè)置或返回?cái)?shù)據(jù)連接時(shí)的錯(cuò)誤信息 |
Connection | 返回當(dāng)前數(shù)據(jù)源的Connection連接。 |
ConnectionString | 返回或設(shè)置當(dāng)前數(shù)據(jù)源的連接字符串。 |
DatabaseUseType | 返回或標(biāo)記當(dāng)前數(shù)據(jù)源為哪種用途。 |
HaveCheckedSchemaColumn | 已經(jīng)檢查了當(dāng)前數(shù)據(jù)源有SysColumnSchema表 |
HaveCheckedSchemaTable | 已經(jīng)檢查了當(dāng)前數(shù)據(jù)源有SysTableSchema表。 |
IgnoreCaseForTableNameAndColumnName | 是否忽略大小寫。這個(gè)與this.SQLBuilder.QuotePrefix和this.SQLBuilder.QuoteSuffix兩個(gè)方法配合使用。當(dāng)忽略大小寫的時(shí)候,在一些嚴(yán)格區(qū)分大小寫的數(shù)據(jù)庫(kù)中, this.SQLBuilder.QuotePrefix和this.SQLBuilder.QuoteSuffix會(huì)返回空字符串。如果表名或列名想引入一些特殊字符或保留字段時(shí),用分隔符可以強(qiáng)制使用。 |
Name | 返回或設(shè)置當(dāng)前數(shù)據(jù)源的名稱。 |
SourceType | 返回當(dāng)前數(shù)據(jù)庫(kù)的類型 |
SQLBuilder | 返回當(dāng)前數(shù)據(jù)源相對(duì)應(yīng)處理SQL字符串生成類。 |
SupportCsvFileUpload | 是否支持CsvFileUpload。 |
SupportSqlBulkCopy | 是否支持SqlBulkCopy。 |
TransferMode | 是否為從服務(wù)器中轉(zhuǎn)模式。如果屬性設(shè)置為True,則從服務(wù)器端中間件中轉(zhuǎn)執(zhí)行所有SQL,如果為False,則直連數(shù)據(jù)庫(kù)。此屬性為后續(xù)功能預(yù)留。目前沒(méi)有起作用。 |
方法
名稱 | 分類 | 說(shuō)明 |
ExecuteDataReader | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回IDataReader,當(dāng)讀取數(shù)據(jù)結(jié)束時(shí),一定得記得關(guān)閉IDataReader。 |
ExecuteDataReaderAsync | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回IDataReader,當(dāng)讀取數(shù)據(jù)結(jié)束時(shí),一定得記得關(guān)閉IDataReader。 |
ExecuteDataSet | ADO數(shù)據(jù)處理 | ExecuteDataSet執(zhí)行查詢語(yǔ)句,返回DataSet |
ExecuteDataSetAsync | ADO數(shù)據(jù)處理 | ExecuteDataSet執(zhí)行查詢語(yǔ)句,異步返回DataSet |
ExecuteDataTable | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回DataTable |
ExecuteDataTableAsync | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回DataTable |
ExecuteDataTableHelp | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回DataTableHelp |
ExecuteDataTableHelpAsync | ADO數(shù)據(jù)處理 | 執(zhí)行查詢語(yǔ)句,返回DataTableHelp |
ExecuteDataTableMap< T> | ADO數(shù)據(jù)處理 | 直接返回一個(gè)空ExecuteDataTableMap,如果需要查詢具體的數(shù)據(jù),需要通過(guò)LoadFilter屬性重新定位相應(yīng)的數(shù)據(jù)。 |
ExecuteDataTableMapAsync< T> | ADO數(shù)據(jù)處理 | 直接返回一個(gè)空ExecuteDataTableMap,如果需要查詢具體的數(shù)據(jù),需要通過(guò)LoadFilter屬性重新定位相應(yīng)的數(shù)據(jù)。 |
ExecuteNonQuery | ADO數(shù)據(jù)處理 | 執(zhí)行sql語(yǔ)句,返回執(zhí)行條數(shù) |
ExecuteNonQueryAsync | ADO數(shù)據(jù)處理 | 執(zhí)行sql語(yǔ)句,返回執(zhí)行條數(shù) |
ExecuteScalar | ADO數(shù)據(jù)處理 | 執(zhí)行Sql語(yǔ)句,返回單列 |
ExecuteScalarAsync | ADO數(shù)據(jù)處理 | 執(zhí)行Sql語(yǔ)句,返回單列 |
FillSchemaOfAutoIncrement | ADO數(shù)據(jù)處理 | 給Datatable添加主鍵信息。 |
GetInstanceCommand | ADO數(shù)據(jù)處理 | 強(qiáng)行地獲得一個(gè)Command對(duì)象實(shí)例。 |
GetInstanceConnection | ADO數(shù)據(jù)處理 | 獲得一個(gè)Connection實(shí)例。 |
GetInstanceDataAdapter | ADO數(shù)據(jù)處理 | 獲得一個(gè)DataAdapter實(shí)例。 |
GetInstanceParameter | ADO數(shù)據(jù)處理 | 返回一個(gè)參數(shù)的實(shí)例。 |
GetColumnMapping | SQL處理 | 從不同的數(shù)據(jù)源的兩個(gè)不同的表中,對(duì)比獲得兩個(gè)表中共同存在的列的清單,以字典的形式返回。 |
GetSQLSystemTime | SQL處理 | 返回當(dāng)前數(shù)據(jù)庫(kù)的系統(tǒng)時(shí)間 |
GetSyncTableSQL | SQL處理 | 獲得一個(gè)從一個(gè)表同步數(shù)據(jù)到另外一個(gè)表的SQL語(yǔ)句。由一個(gè)Update語(yǔ)句跟一個(gè)Insert語(yǔ)句組成的SQL集合。目前僅支持有單列唯一關(guān)聯(lián)的兩個(gè)表之間進(jìn)行數(shù)據(jù)拷貝。 有考慮去除重復(fù)值的情況。如果目標(biāo)表中已經(jīng)有相應(yīng)的數(shù)據(jù)了,則用源數(shù)據(jù)表里面的數(shù)據(jù)替換,如果沒(méi)有則新增。如果有多列組合關(guān)聯(lián)的話,目前僅支持SQLServer和MySQL 兩種數(shù)據(jù)庫(kù)將多余的數(shù)據(jù)清空。 |
GetUniqueValuesSQLCommandText | SQL處理 | 從指定列中,獲取不重復(fù)的值的SQL語(yǔ)句。 |
GetViewDefinitionSQL | SQL處理 | 返回當(dāng)前數(shù)據(jù)源中,對(duì)應(yīng)視圖的SQL語(yǔ)句。 |
GuessPrimaryIndexMapping | SQL處理 | |
GuessSameUniqueIndexColName | SQL處理 | 從兩個(gè)不同的數(shù)據(jù)源的指定兩個(gè)表當(dāng)中,找到名稱一致的唯一索引字段。由于結(jié)果可能是組合唯一索引,所以返回字段名稱集合。 |
Close | 連接 | 關(guān)閉當(dāng)前數(shù)據(jù)源的連接。 |
Dispose() | 連接 | 注銷當(dāng)前數(shù)據(jù)源的連接。 |
Open | 連接 | 打開(kāi)當(dāng)前數(shù)據(jù)源的連接。 |
TryConnect | 連接 | 測(cè)試數(shù)據(jù)源是否可以連通 |
BeginTrans | 事務(wù) | 開(kāi)啟當(dāng)前數(shù)據(jù)源的事務(wù)。 |
CommitTrans | 事務(wù) | 提交當(dāng)前數(shù)據(jù)源的事務(wù)。 |
RollbackTrans | 事務(wù) | 回滾當(dāng)前數(shù)據(jù)源的事務(wù)。 |
GetComboListOfColumnValue | 數(shù)據(jù)處理 | 根據(jù)SQL語(yǔ)句,返回第一列字段的集合,并返回“A|B|C|D”形式的字符串結(jié)果。這個(gè)與SQLGetComboListString所達(dá)到的效果類似。 |
GetDicOfColumnValue | 數(shù)據(jù)處理 | 獲得數(shù)據(jù)表中前2列中不重復(fù)清單,以字典的形式返回. |
GetDictionaryBySQL(String) | 數(shù)據(jù)處理 | 根據(jù)SQL語(yǔ)句返回一個(gè)字典。 |
GetDictionaryBySQL< TKey, TValue> (String) | 數(shù)據(jù)處理 | 根據(jù)SQL語(yǔ)句返回一個(gè)字典。 |
GetListOfColumnName | 數(shù)據(jù)處理 | 獲得數(shù)據(jù)表中所有列名清單,以集合的形式返回 |
GetListOfColumnValue | 數(shù)據(jù)處理 | 獲得SQL語(yǔ)句返回結(jié)果第一列的清單,自己控制返回結(jié)果。這個(gè)與SQLGetValues的效果類似。但是返回的結(jié)果不去重復(fù)。 |
DatabaseTableName | 數(shù)據(jù)結(jié)構(gòu) | 返回指定參數(shù)Datatable所對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名稱。 |
GetAllTableNamesAndViews | 數(shù)據(jù)結(jié)構(gòu) | 返回?cái)?shù)據(jù)庫(kù)對(duì)應(yīng)的所有表和視圖清單總集合。 |
GetColumnCaptionDataTableHelp | 數(shù)據(jù)結(jié)構(gòu) | 根據(jù)數(shù)據(jù)庫(kù)的表名稱獲得列名稱與列標(biāo)題的一個(gè)清單 |
GetComboListColumnName | 數(shù)據(jù)結(jié)構(gòu) | 獲得數(shù)據(jù)表中所有列名清單,格式為"列1|列2|列3" |
GetIndexTable | 數(shù)據(jù)結(jié)構(gòu) | 返回當(dāng)前數(shù)據(jù)源中,指定表的索引信息。 |
GetSchemaTable | 數(shù)據(jù)結(jié)構(gòu) | 獲得相應(yīng)數(shù)據(jù)庫(kù)表的列信息。 |
GetSchemaTableAsync | 數(shù)據(jù)結(jié)構(gòu) | 獲得相應(yīng)數(shù)據(jù)庫(kù)表的列信息。 |
GetTableListDataTableHelp | 數(shù)據(jù)結(jié)構(gòu) | 獲得一個(gè)二維表,里面記錄當(dāng)前數(shù)據(jù)源中所有表及視圖的清單。二維表包含TableName和TableType兩列。TableType中包含Table和View兩種類型。 |
GetTableNames | 數(shù)據(jù)結(jié)構(gòu) | 返回?cái)?shù)據(jù)庫(kù)對(duì)應(yīng)的所有表清單 |
GetViewNames | 數(shù)據(jù)結(jié)構(gòu) | 返回?cái)?shù)據(jù)庫(kù)對(duì)應(yīng)的所有視圖清單 |
IsTableSchemeTheSame | 數(shù)據(jù)結(jié)構(gòu) | 判斷兩個(gè)表的數(shù)據(jù)結(jié)構(gòu)是否為一樣。這里只判斷表中的列名稱,并不判斷字段的數(shù)據(jù)類型。同時(shí)判斷時(shí)自動(dòng)忽略字段名的大小寫。當(dāng)前數(shù)據(jù)源默認(rèn)為目標(biāo)數(shù)據(jù)源。 |
CopyDataFromCSVFile | 同步數(shù)據(jù) | 上傳CSV文件中的數(shù)據(jù)到指定表中。 |
CopyDataNormally | 同步數(shù)據(jù) | 從DataTable中獲得數(shù)據(jù),并以常規(guī)的方式插入到數(shù)據(jù)庫(kù)的指定數(shù)據(jù)表中。此方法為常規(guī)方法,較為通用,不會(huì)有不兼容問(wèn)題。缺點(diǎn)是速度慢,一次性不能處理大批量的數(shù)據(jù)。 |
CopyDataWithDataReader | 同步數(shù)據(jù) | 使用DataReader對(duì)象從一個(gè)數(shù)據(jù)源的數(shù)據(jù)表復(fù)制到別個(gè)一個(gè)數(shù)據(jù)源的數(shù)據(jù)表中。此方法對(duì)內(nèi)存占用少一點(diǎn)。如果數(shù)據(jù)源支持SqlBurkCopy則會(huì)以更快的速度進(jìn)行拷貝。 |
CsvFileUpload | 同步數(shù)據(jù) | 直接上傳CSV文件到數(shù)據(jù)庫(kù)的指定表中。 |
SqlBulkCopy(DataTable, String, Dictionary< String, String> , Boolean) | 同步數(shù)據(jù) | 從DataTable中獲得數(shù)據(jù),并以最快的速度插入到數(shù)據(jù)庫(kù)的指定數(shù)據(jù)表中。抽象類中實(shí)現(xiàn)方式直接用最基本的最慢的方式來(lái)實(shí)現(xiàn)。子類如果想要快速的話,必須要自己實(shí)現(xiàn)。 |
SqlBulkCopy(DbDataReader, String, Dictionary< String, String> , Boolean) | 同步數(shù)據(jù) | 從DataReader中獲得數(shù)據(jù),并以最快的速度插入到數(shù)據(jù)庫(kù)的指定數(shù)據(jù)表中。 |
SyncData | 同步數(shù)據(jù) | 以最快的速度從另外一個(gè)數(shù)據(jù)庫(kù)中同步數(shù)據(jù)。 |
UpdateData | 同步數(shù)據(jù) | 在兩個(gè)不同的數(shù)據(jù)源之間更新數(shù)據(jù)。更新的方式是先把源數(shù)據(jù)庫(kù)中的表直接拷貝一份到目標(biāo)數(shù)據(jù)庫(kù)中(因?yàn)楹芏鄶?shù)據(jù)庫(kù)支持SqlBurkCopy這種快速拷貝技術(shù),所以從性能上來(lái)說(shuō)比較劃算)。 然后再通過(guò)SQL語(yǔ)句將臨時(shí)表中的數(shù)據(jù)更新到目標(biāo)表中。這種方式更新效率是最好的。比另外一種直接先刪除目標(biāo)數(shù)據(jù)表中所有數(shù)據(jù)然后重新拷貝數(shù)據(jù)要好一點(diǎn)。不會(huì)造成自增長(zhǎng)ID因?yàn)椴煌5貏h除新增而基數(shù)暴增。 注意,目前只有SQLServer和MySQL兩種數(shù)據(jù)庫(kù)支持多關(guān)聯(lián)字段能正常刪除目標(biāo)數(shù)據(jù)表中多余的記錄。其他的只支持單關(guān)聯(lián)字段。 |
UpdateDataWithDataTable | 同步數(shù)據(jù) | 直接粗暴地將數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)全部加載到內(nèi)存,然后一條一條比對(duì)更新。這種方法適合數(shù)據(jù)量不大的場(chǎng)景。切記不可亂用! |
UploadFile | 同步數(shù)據(jù) | 根據(jù)篩選條件上傳文件到數(shù)據(jù)庫(kù)指定表的指定列中。請(qǐng)保存 |