Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 >
Database

构造函数

属性

名称 说明
ConnectErrorMessage 设置或返回数据连接时的错误信息
Connection 返回当前数据源的Connection连接。
ConnectionString 返回或设置当前数据源的连接字符串。
DatabaseUseType 返回或标记当前数据源为哪种用途。
HaveCheckedSchemaColumn 已经检查了当前数据源有SysColumnSchema表
HaveCheckedSchemaTable 已经检查了当前数据源有SysTableSchema表。
IgnoreCaseForTableNameAndColumnName 是否忽略大小写。这个与this.SQLBuilder.QuotePrefix和this.SQLBuilder.QuoteSuffix两个方法配合使用。当忽略大小写的时候,在一些严格区分大小写的数据库中, this.SQLBuilder.QuotePrefix和this.SQLBuilder.QuoteSuffix会返回空字符串。如果表名或列名想引入一些特殊字符或保留字段时,用分隔符可以强制使用。
Name 返回或设置当前数据源的名称。
SourceType 返回当前数据库的类型
SQLBuilder 返回当前数据源相对应处理SQL字符串生成类。
SupportCsvFileUpload 是否支持CsvFileUpload。
SupportSqlBurkCopy 是否支持SqlBurkCopy。
TransferMode 是否为从服务器中转模式。如果属性设置为True,则从服务器端中间件中转执行所有SQL,如果为False,则直连数据库。此属性为后续功能预留。目前没有起作用。

方法

名称 分类 说明
ExecuteDataReader ADO数据处理 执行查询语句,返回IDataReader,当读取数据结束时,一定得记得关闭IDataReader。
ExecuteDataReaderAsync ADO数据处理 执行查询语句,返回IDataReader,当读取数据结束时,一定得记得关闭IDataReader。
ExecuteDataSet ADO数据处理 ExecuteDataSet执行查询语句,返回DataSet
ExecuteDataSetAsync ADO数据处理 ExecuteDataSet执行查询语句,异步返回DataSet
ExecuteDataTable ADO数据处理 执行查询语句,返回DataTable
ExecuteDataTableAsync ADO数据处理 执行查询语句,返回DataTable
ExecuteDataTableHelp ADO数据处理 执行查询语句,返回DataTableHelp
ExecuteDataTableHelpAsync ADO数据处理 执行查询语句,返回DataTableHelp
ExecuteDataTableMap< T> ADO数据处理 直接返回一个空ExecuteDataTableMap,如果需要查询具体的数据,需要通过LoadFilter属性重新定位相应的数据。
ExecuteDataTableMapAsync< T> ADO数据处理 直接返回一个空ExecuteDataTableMap,如果需要查询具体的数据,需要通过LoadFilter属性重新定位相应的数据。
ExecuteNonQuery ADO数据处理 执行sql语句,返回执行条数
ExecuteNonQueryAsync ADO数据处理 执行sql语句,返回执行条数
ExecuteScalar ADO数据处理 执行Sql语句,返回单列
ExecuteScalarAsync ADO数据处理 执行Sql语句,返回单列
FillSchemaOfAutoIncrement ADO数据处理 给Datatable添加主键信息。
GetInstanceCommand ADO数据处理 强行地获得一个Command对象实例。
GetInstanceConnection ADO数据处理 获得一个Connection实例。
GetInstanceDataAdapter ADO数据处理 获得一个DataAdapter实例。
GetInstanceParameter ADO数据处理 返回一个参数的实例。
GetColumnMapping SQL处理 从不同的数据源的两个不同的表中,对比获得两个表中共同存在的列的清单,以字典的形式返回。
GetSQLSystemTime SQL处理 返回当前数据库的系统时间
GetSyncTableSQL SQL处理 获得一个从一个表同步数据到另外一个表的SQL语句。由一个Update语句跟一个Insert语句组成的SQL集合。目前仅支持有单列唯一关联的两个表之间进行数据拷贝。 有考虑去除重复值的情况。如果目标表中已经有相应的数据了,则用源数据表里面的数据替换,如果没有则新增。如果有多列组合关联的话,目前仅支持SQLServer和MySQL 两种数据库将多余的数据清空。
GetUniqueValuesSQLCommandText SQL处理 从指定列中,获取不重复的值的SQL语句。
GetViewDefinitionSQL SQL处理 返回当前数据源中,对应视图的SQL语句。
GuessPrimaryIndexMapping SQL处理  
GuessSameUniqueIndexColName SQL处理 从两个不同的数据源的指定两个表当中,找到名称一致的唯一索引字段。由于结果可能是组合唯一索引,所以返回字段名称集合。
Close 连接 关闭当前数据源的连接。
Dispose()  连接 注销当前数据源的连接。
Open 连接 打开当前数据源的连接。
TryConnect 连接 测试数据源是否可以连通
BeginTrans 事务 开启当前数据源的事务。
CommitTrans 事务 提交当前数据源的事务。
RollbackTrans 事务 回滚当前数据源的事务。
GetComboListOfColumnValue 数据处理 根据SQL语句,返回第一列字段的集合,并返回“A|B|C|D”形式的字符串结果。这个与SQLGetComboListString所达到的效果类似。
GetDicOfColumnValue 数据处理 获得数据表中前2列中不重复清单,以字典的形式返回.
GetDictionaryBySQL(String) 数据处理 根据SQL语句返回一个字典。
GetDictionaryBySQL< TKey, TValue> (String) 数据处理 根据SQL语句返回一个字典。
GetListOfColumnName 数据处理 获得数据表中所有列名清单,以集合的形式返回
GetListOfColumnValue 数据处理 获得SQL语句返回结果第一列的清单,自己控制返回结果。这个与SQLGetValues的效果类似。但是返回的结果不去重复。
DatabaseTableName 数据结构 返回指定参数Datatable所对应的数据库表名称。
GetAllTableNamesAndViews 数据结构 返回数据库对应的所有表和视图清单总集合。
GetColumnCaptionDataTableHelp 数据结构 根据数据库的表名称获得列名称与列标题的一个清单
GetComboListColumnName 数据结构 获得数据表中所有列名清单,格式为"列1|列2|列3"
GetIndexTable 数据结构 返回当前数据源中,指定表的索引信息。
GetSchemaTable 数据结构 获得相应数据库表的列信息。
GetSchemaTableAsync 数据结构 获得相应数据库表的列信息。
GetTableListDataTableHelp 数据结构 获得一个二维表,里面记录当前数据源中所有表及视图的清单。二维表包含TableName和TableType两列。TableType中包含Table和View两种类型。
GetTableNames 数据结构 返回数据库对应的所有表清单
GetViewNames 数据结构 返回数据库对应的所有视图清单
IsTableSchemeTheSame 数据结构 判断两个表的数据结构是否为一样。这里只判断表中的列名称,并不判断字段的数据类型。同时判断时自动忽略字段名的大小写。当前数据源默认为目标数据源。
CopyDataFromCSVFile 同步数据 上传CSV文件中的数据到指定表中。
CopyDataNormally 同步数据 从DataTable中获得数据,并以常规的方式插入到数据库的指定数据表中。此方法为常规方法,较为通用,不会有不兼容问题。缺点是速度慢,一次性不能处理大批量的数据。
CopyDataWithDataReader 同步数据 使用DataReader对象从一个数据源的数据表复制到别个一个数据源的数据表中。此方法对内存占用少一点。如果数据源支持SqlBurkCopy则会以更快的速度进行拷贝。
CsvFileUpload 同步数据 直接上传CSV文件到数据库的指定表中。
SqlBurkCopy(DataTable, String, Dictionary< String, String> , Boolean) 同步数据 从DataTable中获得数据,并以最快的速度插入到数据库的指定数据表中。抽象类中实现方式直接用最基本的最慢的方式来实现。子类如果想要快速的话,必须要自己实现。
SqlBurkCopy(DbDataReader, String, Dictionary< String, String> , Boolean) 同步数据 从DataReader中获得数据,并以最快的速度插入到数据库的指定数据表中。
SyncData 同步数据 以最快的速度从另外一个数据库中同步数据。
UpdateData 同步数据 在两个不同的数据源之间更新数据。更新的方式是先把源数据库中的表直接拷贝一份到目标数据库中(因为很多数据库支持SqlBurkCopy这种快速拷贝技术,所以从性能上来说比较划算)。 然后再通过SQL语句将临时表中的数据更新到目标表中。这种方式更新效率是最好的。比另外一种直接先删除目标数据表中所有数据然后重新拷贝数据要好一点。不会造成自增长ID因为不停地删除新增而基数暴增。 注意,目前只有SQLServer和MySQL两种数据库支持多关联字段能正常删除目标数据表中多余的记录。其他的只支持单关联字段。
UpdateDataWithDataTable 同步数据 直接粗暴地将数据库中所有的数据全部加载到内存,然后一条一条比对更新。这种方法适合数据量不大的场景。切记不可乱用!
UploadFile 同步数据 根据筛选条件上传文件到数据库指定表的指定列中。请保存