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

属性

属性名称 说明
Count 返回集合的数量。
CustomDatabaseNames 返回所有数据源的名称集合。
DatabaseNames 返回所有数据源的名称集合。
Item[ String]  根据名称返回集合中的数据源。

方法

名称 说明
Add 添加一个数据源。
Contains 集合中是否包含指定名称的数据库连接。
Delete 删除指定名称的数据库连接。
GetAutoNumber(Database, String, String) 此函数自动获取ID数据列的最大值,此方法并没有考虑并发问题,有可能多人在取值时会取到重复值。
GetAutoNumber(String, String, String) 此函数自动获取ID数据列的最大值,此方法并没有考虑并发问题,有可能多人在取值时会取到重复值。
GetNumsByFilter 根据筛选条件,从指定数据源中的指定表中获得相应数据的记录数量。
GetOracleTableAutoIncreamentID(Database, String, Int32) 为Oracle表获取自增长ID。此方法是通过不断重试冲突的方法获得自增长ID的。返回第一个可用的ID。如果申请了多个,请自己默认获得返回ID后面相应数量的ID值。如果返回-1,说明获取失败。
GetOracleTableAutoIncreamentID(String, String, Int32) 为Oracle表获取自增长ID。此方法是通过不断重试冲突的方法获得自增长ID的。返回第一个可用的ID。如果申请了多个,请自己默认获得返回ID后面相应数量的ID值。如果返回-1,说明获取失败。
GetPrimaryKeyList(DataTable) 返回某个DataTable的所有主键集合。
GetPrimaryKeyList(String, String) 根据数据库表名从数据库查询并返回表中主键集合。

 

Vb.Net
'如果系统数据工厂里面有多个数据源
If Proj.SysDataFactory.Count>0 Then
    '遍历所有的数据源
    For Each db As String In Proj.SysDataFactory.DatabaseNames
        Proj.MsgDebug.Add("数据源名称:{0},数据库类型:{1},数据使用类型:{2}",db,Proj.SysDataFactory(db).SourceType.ToString(),Proj.SysDataFactory(db).DatabaseUseType.ToString())
    Next
End If

Proj.MsgDebug.Add("----------以下为用户自己的业务数据源-----------")
'遍历所有的用户自己的业务数据源
For Each db As String In Proj.SysDataFactory.CustomDatabaseNames
    Proj.MsgDebug.Add("数据源名称:{0},数据源类型:{1},数据使用类型:{2}",db,Proj.SysDataFactory(db).SourceType.ToString(),Proj.SysDataFactory(db).DatabaseUseType.ToString())
Next

'动态添加一个数据源
Dim filename As String="D:\abc.db"
Dim strConnDB As String= "Data Source = " + filename + ";Pooling=true;FailIfMissing=false"
Dim strDbName As String="新增数据源"
'先判断当前数据工厂中是否包含此数据源,如果包含此数据源,可以考虑先删除
If Proj.SysDataFactory.Contains(strDbName) Then
    Proj.SysDataFactory.Delete(strDbName) '删除指定名称的数据源
End If
'现在来动态添加数据源
Dim db As Database= Proj.SysDataFactory.Add(strDbName,strConnDB,SourceTypeEnum.SQLite,False)
'定义一下数据源的使用类型,方便在CustomDatabaseNames集合中遍历到
db.DatabaseUseType=DatabaseUseTypeEnum.Custom

C#
// 如果系统数据工厂里面有多个数据源
if (Proj.SysDataFactory.Count > 0)
{
    // 遍历所有的数据源
    foreach (string db in Proj.SysDataFactory.DatabaseNames)
    {
        Proj.MsgDebug.Add("数据源名称:{0},数据库类型:{1},数据使用类型:{2}", db, Proj.SysDataFactory[db].SourceType.ToString(), Proj.SysDataFactory[db].DatabaseUseType.ToString());
    }
}

Proj.MsgDebug.Add("----------以下为用户自己的业务数据源-----------");
// 遍历所有的用户自己的业务数据源
foreach (string db in Proj.SysDataFactory.CustomDatabaseNames)
{
    Proj.MsgDebug.Add("数据源名称:{0},数据源类型:{1},数据使用类型:{2}", db, Proj.SysDataFactory[db].SourceType.ToString(), Proj.SysDataFactory[db].DatabaseUseType.ToString());
}

// 动态添加一个数据源
string filename = @"D:\abc.db";
string strConnDB = "Data Source = " + filename + ";Pooling=true;FailIfMissing=false";
string strDbName = "新增数据源";
// 先判断当前数据工厂中是否包含此数据源,如果包含此数据源,可以考虑先删除
if (Proj.SysDataFactory.Contains(strDbName))
{
    Proj.SysDataFactory.Delete(strDbName);// 删除指定名称的数据源
}
// 现在来动态添加数据源
Database dbb = Proj.SysDataFactory.Add(strDbName, strConnDB, SourceTypeEnum.SQLite, false);
// 定义一下数据源的使用类型,方便在CustomDatabaseNames集合中遍历到
dbb.DatabaseUseType = DatabaseUseTypeEnum.Custom;