Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > Database >
连接
方法 类型 说明
Close 连接 关闭当前数据源的连接。
Dispose()  连接 注销当前数据源的连接。
Open 连接 打开当前数据源的连接。
TryConnect 连接 测试数据源是否可以连通。此方法可以指定一个超时时间,如果超时没有正常连接上则认为无法正常连接。不需要按照系统默认的卡死并等几十秒才返回结果。

与连接相关的这几个方法中,Open和Close这两个方法很少需要自己显式地调用。这几个方法中只有TryConnect还有使用场景。在测试数据库连接字符串是否可以正常连接。

Vb.Net
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)
'检测数据源是否可以连接
If db.TryConnect(500) Then '如果超过500毫秒无法连接上就认为连接字符串设置有问题
    Proj.MsgDebug.Add("连接成功")
Else
    Proj.MsgDebug.Add("连接失败")
End If

'db.Open方法不需要显式地去调用
'为了能够顺利删除文件,要先关闭数据源
db.Close()
'删除此数据源
Proj.SysDataFactory.Delete(db.Name)
'清除所有连接池。任何活动连接都将被丢弃,而不是在关闭时发送到池。只有这样才可以正常删除此SQLite数据库文件,否则就会提示文件被占用
System.Data.SQLite.SQLiteConnection.ClearAllPools()
'删除文件
File.Delete(filename)

C#
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 db = Proj.SysDataFactory.Add(strDbName, strConnDB, SourceTypeEnum.SQLite, false);
// 检测数据源是否可以连接
if (db.TryConnect(500))
    Proj.MsgDebug.Add("连接成功");
else
    Proj.MsgDebug.Add("连接失败");

// db.Open方法不需要显式地去调用
// 为了能够顺利删除文件,要先关闭数据源
db.Close();
// 删除此数据源
Proj.SysDataFactory.Delete(db.Name);
// 清除所有连接池。任何活动连接都将被丢弃,而不是在关闭时发送到池。只有这样才可以正常删除此SQLite数据库文件,否则就会提示文件被占用
System.Data.SQLite.SQLiteConnection.ClearAllPools();
// 删除文件
File.Delete(filename);