Foxtable(狐表)用户栏目专家坐堂 → 这样操作能保存系统配置吗?


  共有4315人关注过本帖树形打印复制链接

主题:这样操作能保存系统配置吗?

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 18:03:00 [显示全部帖子]

 理论上是可以的。你先问什么?出什么错了?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 18:34:00 [显示全部帖子]

 这个是大问题,是想打开项目的时候切换数据源么?你得先理清思路。

 

 项目打开以后,首先执行的是 BeforeConnectOuterDataSource 事件

 

 你如果要更改数据源必须这样写代码

 

'检测是否能连接成功

Dim server As String
Dim mima As String
GetConfigValue("fwq", server)
GetConfigValue("mm", mima)
Dim s As String ="Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server
If Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!","提示")
    Forms("系统连接").show '这个窗口,必须是 模式窗口

    '重新得到能成功的值,设置连接

    e.ConnectionString = "xxxx"
Else
   MessageBox.Show("数据源连通!","提示")
End If

 

http://www.foxtable.com/help/topics/0682.htm

 


[此贴子已经被作者于2014-3-30 18:34:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 19:10:00 [显示全部帖子]

 呃,错了。取值要这样

 

 server = GetConfigValue("fwq", nothing)
 mima = GetConfigValue("mm", nothing)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 21:22:00 [显示全部帖子]

以下是引用liming730323在2014-3-30 20:56:00的发言:

 

我这样写,运行出错啊,应该怎么写啊?

 

呃,没人理解你到底想做什么,你代码写在哪里,又报什么错。

 

问题请表述的具体一点,再不然,请上传你做的一个例子加以说明


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 21:31:00 [显示全部帖子]

 那你就应在BeforeConnectOuterDataSource 写代码,而且你的[系统连接]必须是模式窗口

 

Dim server As String
Dim mima As String
server = GetConfigValue("fwq", nothing)
mima = GetConfigValue("mm", nothing)
Dim s As String ="Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server
If Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!","提示")
    Forms("系统连接").show '这个窗口,必须是 模式窗口

   

    '重新得到能成功的值,设置连接

    server = GetConfigValue("fwq", nothing)
    mima = GetConfigValue("mm", nothing)
    s = Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server

    e.ConnectionString = s
Else

   e.ConnectionString = s
   MessageBox.Show("数据源连通!","提示")
End If

 

 

 

你应该写在窗口里的代码,大致这样

 

Dim server As String = ""
Dim mima As String = ""
server=Forms("系统连接").Controls("TextBox1").text

mima=Forms("系统连接").Controls("TextBox2").text
SaveConfigValue("fwq",server)
SaveConfigValue("mm", mima)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 22:09:00 [显示全部帖子]

 改成这样了,不过发觉这样以后,在BeforeConnectOuterDataSource 中是无法操作form的,所以不成功。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:美发管理系统.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/30 22:11:00 [显示全部帖子]

 这样的话,就比较麻烦了,你必须自己用代码定义一个窗口,再定义事件,才能实现切换数据源的功能

 

 挺麻烦的的,代码类似


Dim nform As new System.Windows.Forms.Form
nform.text = "测试"
nform.show()


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/31 9:19:00 [显示全部帖子]

以下是引用liming730323在2014-3-31 9:10:00的发言:
求实例指导,谢谢

 

这个问题,初学者不建议弄。我觉得这个功能应该由官方提供,允许用户自定义项目启动之前的窗口,这样就可以做自己想要的登陆窗口和数据源切换窗口了。


 回到顶部