为多个客户端运行C#数据库应用程序

狮子

知名会员
已加入
2018年11月29日
留言内容
52
编程经验
Beginner
你好

我有一所神学院的用C#编写的数据库应用程序。如果要在另一个站点的另一所大学使用同一应用程序的另一个数据库,那么连接数据库的最佳方法是什么。

我目前使用连接字符串,但这意味着更改每个学院的字符串。

有没有一种通用的连接方法?最好是使用odbc连接到数据库,还是有更好的方法。

我正在尝试使应用程序具有可移植性,而不必为每所大学进行更改。

只是指出正确的方向,我不相信收到代码,这不是学习的方法。

谢谢,非常感谢。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
如果每种情况下数据库都不在同一位置,那么您别无选择,只能更改连接字符串。例如,如果将在每个站点的服务器上创建一个数据库,并且该服务器每次都具有不同的名称,那么您每次都必须提供该名称。您可以使用ODBC并指定一个DSN,但是随后您需要在每台计算机上使用连接详细信息保存一个新的DSN,因此您只需将问题推后一步即可。唯一有帮助的方法是,如果每台计算机上都已经有该服务器的DSN,然后可以在连接后指定数据库。如果您的数据库在应用程序本地,则不会出现相同的问题,因为您可以使用"|DataDirectory|"连接字符串中的占位符,它将在运行时解析。另一个选择是在运行时根据用户提供的值并可能使用应用程序设置在本地保存的值来构建连接字符串。
 
已加入
2019年2月19日
留言内容
8
地点
浦那
编程经验
5-10
Facebook
sagar.jaybhay.906
推特
sagar_jaybhay
您可以创建一个表,在该表中可以放置数据库字符串的映射以及标识ID。在运行应用程序时,从该表中读取值。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
您可以创建一个表,在该表中可以放置数据库字符串的映射以及标识ID。在运行应用程序时,从该表中读取值。
这将需要您拥有一个主数据库,每个站点上的每个用户都必须首先连接到该主数据库,然后才能获得其自己数据库的连接详细信息。这也意味着您在部署后仍需要编辑站点ID,那么为什么不只编辑连接字符串呢?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,605
地点
弗吉尼亚州切萨皮克
编程经验
10+
就个人而言,我有点担心您有3个不同的组织共享一个数据库。我希望数据库不会在Internet上赤裸裸地坐着。回想一下最近的(NoSQL?)数据库漏洞,其中一些人使数据库裸露在Internet上-更糟糕的是,他们保留了默认登录帐户。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
就个人而言,我有点担心您有3个不同的组织共享一个数据库。
据我所知,事实并非如此。如果是这样,则无需提问,因为每个人都将使用相同的已知连接详细信息。根据我的阅读,此应用程序将在多个站点上使用,并且每个站点将在自己选择的位置中拥有自己的数据库副本,这就是为什么每个站点的连接详细信息都需要不同的原因。问题的第一段说"another database"这样就排除了"single database".
 
最佳 底部