2012-10-26 21 views
2

如果我可以将连接字符串设置为以供他们编辑,那么现在就可以很好地完成。此时该字符串包含对我的机器的引用,我的测试数据库位于此处。我想为其他人尝试创建一个alpha,但他们需要将它指向自己的数据库实例。当Visual Studio只允许它成为“应用程序”设置时,我如何允许用户更改SQL连接字符串?

更一般地说,在Visual Studio设计器中保留DataSets的正确方法是什么,同时连接字符串能够被用户指向配置的服务器? - 目前他们似乎依赖于我的设置中的连接字符串。

+0

您是否使用Linq to Entities,LINQ to SQL,ADO或其他连接到数据库的东西? – nerdybeardo

+0

这是一个MS SQL数据库,我使用服务器对象窗口在我的应用程序中创建了数据集,但也有时直接使用SqlConnection调用,因为它看起来更简单。 – noelicus

回答

0

使用app.config和System.Configuration,他们可以在配置中设置正确的连接字符串。

见这个问题如何:

Get connection string from App.config

+0

你想介绍一下吗? 我提到的设置可以通过'Properties.Settings.Default.etc'访问。 Visual Studio似乎已经将这些文件保存在一个app.config文件中了......你是说在一个管理员可以编辑的地方复制这些文件“应用程序”的价值或一些这样的? – noelicus

+0

@noelicus是的,如果程序包含任何内容,程序将运行该文件。你也可以编辑程序中的值,虽然MS比没有好的理由要难得多。还有嵌入式属性保存在DLL中,这是我以为你使用的是因为你问了这个问题。 – mattmanser

+0

那么app.config在哪里生活呢? - 一个管理员可以编辑。我可以看到“用户” - 它是我希望编辑的应用程序设置(如果可用)。 – noelicus

0

因为,据推测,ConnectionString中回数据库包含高度敏感的信息,如服务器名,数据库名,甚至用户ID和密码;因此,该信息固有地被设计为隐蔽或对用户群体保密。您的应用程序的恶意用户将非常乐意利用用户控制的连接字符串的机会。

看起来,如果您需要以这种方式控制数据,您应该考虑某种分析机制,在后台执行特定数据主机选择,而不是以完全用户控制的方式进行选择。

编辑

一种可能的替代方案,我建议是事先确定的“另类”的服务器,以及相应的连接字符串添加到应用程序的配置文件。在应用程序本身中,提供某种与用户想要使用的数据集绑定的用户友好标识符,然后将该标识符背后的场景绑定到正确的连接字符串,从而保持连接字符串的详细信息为私有。