【问题标题】:Select databases dynamically动态选择数据库
【发布时间】:2012-09-08 22:20:23
【问题描述】:

我在尝试连接到动态数据库时遇到了真正的砖墙。而且我不知道如何实现这一点,

这是我的流程,我有一个应用程序,它需要适应工作环境的变化,比如如果工作场所服务器崩溃并且他们创建了一个名为 db_new 的新数据库,应用程序将连接到该数据库而不是旧的数据库名称。

我已经有一个窗口,可以在列表框中显示来自服务器的数据库,用户可以在其中指定要用于应用程序的数据库。但问题是,如何保存选定的数据库名称,以便在选择新数据库后可以运行? ..

管理员应该能够在必要时更改应用程序使用的数据库,并且应用程序应该继续使用该选定的数据库,直到管理员将其更改回新数据库。

如果问题有点含糊,请原谅,我只是尽我所能把它放在一起,任何帮助都会非常棒:)

编辑:

我不能使用文本文件或 xml 作为应用程序使用的数据库名称,应该以安全的方式存储。 :)

【问题讨论】:

  • 如何显示数据库列表?发布您正在使用的代码。
  • 使用“显示数据库”查询:)
  • 那么您应该可以使用row["database_name"] 获取其名称,然后将其值保存在 web.config 文件中,例如
  • 所以,如果我将它保存在 web.config 文件中,它是否足够安全?:) 如果这是可能的,那就太好了。但是我正在开发桌面应用程序,所以,如果没有其他选择,我可以使用桌面应用程序吗?我可以转向网络 :)
  • 抱歉,桌面应用程序使用 App.config 文件而不是 web.config。是的,它可以在程序关闭后从您的应用程序中访问。但问题是它不会受到保护,因为管理员可能会破解此文件。

标签: c# mysql database database-connection


【解决方案1】:

您尚未告诉我们您使用的语言。因此我们无法提供非常好的建议。

我的第一个想法:

如果这是 PHP,你可以让通用应用程序使用类似的东西,

$db->execute('sql statement here');

然后让管理员在需要时更改当前的 $db。这样 $db->e​​xecute() 将始终在“当前”数据库上执行。

编辑:这在 C# 中应该仍然有效。如果您有使用数据库的函数调用作为当前数据库连接的变量,那么您应该能够在需要时将数据库连接更改为正确的数据库,而其余部分继续运行,因为它只是同一个变量。

【讨论】:

  • 哦..抱歉,我正在使用 c# .. :) 非常感谢您的回答 :) 无论如何要使用 c# 来完成?
  • 哦,好吧...我会试试这个,但即使应用程序关闭并再次运行,这仍然有效吗??
【解决方案2】:

首先,您可以非常轻松地使用文本或 XML 文件:如果您将信息存储在用户无法下载的文件中(就像我假设的那样),这和它一样安全可以是:如果有人设法闯入服务器并读取了文件,那么无论如何游戏结束

也就是说,我建议您使用 MySQL 代理或类似机制并将您的 WebApp 指向它 - 然后可以在代理层处理故障转移到另一个数据库或更改底层数据库,而 WebApp 甚至都不知道它:该功能不需要成为您的应用程序的一部分,在我的书中它不应该。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多