以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 外部数据连接字符串的设置 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=62515) |
-- 作者:newsun2k -- 发布时间:2015/1/3 16:46:00 -- 外部数据连接字符串的设置 我用一个ACCESS做数据库。 编程时,设定好连接字符串,指定一个mdb文件。 发布后,希望自动指定当前文件夹下的mdb文件,如何实现?
|
-- 作者:李孝春 -- 发布时间:2015/1/3 20:16:00 -- 采用动态设置代码进行设置实现!
BeforeConnectOuterDataSource 这个事件是专业用户才用得着的,普通用户不需要研究它。 Name: 外部数据源名称 e参数方法: EditConnectionString:手工连接数据源。 这也是唯一一个带方法的e参数。 利用本事件,可以根据登录用户的不同,通过修改e参数的ConnectionString属性,链接到不同的后台数据库。 注意此事件必须通过e.User来引用用户。 示例一 假定有一个成绩管理系统,使用的是一个Access格式的外部数据源,外部数据源的名称为“成绩”,外部数据文件名为"成绩数据.mdb",和项目文件处于同一目录之下。 If e.name = "成绩" Then 这里假定外部数据源的格式2000/2003,如果是2007,代码为: If e.name = "成绩" Then 如果有多个数据源,可以: If e.name = "数据源1" Then 示例二 假定你有三个外部数据文件,分别是:2008.MDB、2009.MDB、2010.MDB,希望能够让用户在登录的时候,选择链接这三个数据库之一。 然后在BeforeConnectOuterDataSource事件中加入下面的代码: If e.name = "连接名称" Then 这样用户在登录的时候,不仅可以从下拉列表中选择数据库,还可以直接输入数据库名称。 示例三 如果希望能够在打开项目的时候,自动出现一个对话框,让用户可以自由选择外部数据文件,可以在BeforeConnectOuterDataSource事件中加入下面的代码: If e.Name = "连接名称" ThenDim dlg As New OpenFileDialog dlg.Filter= "Access文件|*.mdb" If dlg.ShowDialog = DialogResult.Ok Then e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=False" End If End if 示例四 假定有一个名为“销售数据”远程数据源,默认的IP地址为119.119.120.120,因为服务器的调整,IP地址可能会发生变化,导致数据源无法连接。 If e.Name = "销售数据" ThenDim IP As String = e.User.ExtendedValues("IP") \'获得用户输入的IP If IP > "" \'如果用户自己输入了IP \'则用用户输入的IP替换原来的IP e.ConnectionString = e.ConnectionString.Replace("119.119.120.120", IP) End If End If 你也可以用另一种方法解决,在项目文件目录下创建一个ip.txt的文本文件,在该文件中输入最新的IP地址,并在BeforeConnectOuterDataSource事件中设置如下代码: Dim ipFile As String = e.ProjectPath & "ip.txt" 示例五 假定有两个IP地址(也可能是两个服务器),分别是192.168.1.100和119.75.217.56,默认使用第一个IP地址,如果第一个IP地址无法接通,则自动切换到第二个IP地址。 If e.Name = "数据源名称" Then 示例六 你也可以在连接某一数据源之前,执行方法EditConnectionString,让用户手工设置连接字符串。 If e.User.Type = UserTypeEnum.Developer Thene.EditConnectionString() End If [此贴子已经被作者于2015-1-3 20:21:25编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/1/4 13:16:00 -- 参考
http://www.foxtable.com/help/topics/0682.htm
|