我正在尝试在vb.net中创建一个应该与用户特定数据库一起工作的Windows窗体应用程序,这意味着用户创建数据库并为其提供自己的名称,之后系统将导入我的数据库文件并从中创建表然后创建一个用于连接的配置文件。
到目前为止,我已经创建了一个表单,用户将使用数据库设置保存,并将它们存储在应用程序设置变量中,如此
Private Sub Save()
My.Settings.MServer = TxtServer.Text
My.Settings.MDbUser = TxtDbUname.Text
My.Settings.MDbPass = TxtDbPwd.Text
My.Settings.MDb = TxtDb.Text
My.Settings.Save()
MessageBox.Show("Dtabase settings saved correctly", "Database settings")
My.Settings.Reload()
Application.Restart()
End Sub
问题在于,将其放在主窗体上菜单的设置部分下,会给系统带来漏洞,因为任何能够访问安装它的计算机的人都可以更改它。
我想问一下
由于
答案 0 :(得分:1)
试试这个 创建一个系统设置变量,让用户设置它的值,然后创建一个表单,用户将从中输入数据库值 在加载主表单甚至登录表单的代码之后,创建一个if语句来检查是否设置了用户设置,否则加载表单,以便用户输入并保存它们:
然后在加载登录/主表单之前添加此代码
if My.Settings.MServer = String.Empty AndAlso
My.Settings.MDbUser = String.Empty AndAlso
My.Settings.MDbPass = String.Empty AndAlso
My.Settings.MDb = String.Empty Then
MySettingsForm.Show()
Else
'Load the next part either the login or main form'
End If
在Mydbsettings表单上,在保存按钮的onclick事件下添加此代码以保存设置
My.Settings.MServer = TxtServer.Text
My.Settings.MDbUser = TxtDbUname.Text
My.Settings.MDbPass = TxtDbPwd.Text
My.Settings.MDb = TxtDb.Text
My.Settings.Save()
MessageBox.Show("Database settings saved correctly", "Database settings")
My.Settings.Reload()
Application.Restart()