C# 在同一个应用程序中使用通用设置来连接mysql和ms sql?
我正在将一个delphi应用程序(使用mysql)转换为c#应用程序,要求能够连接mysql和MS SQL数据库 用户将通过文本框手动设置连接字符串中的以下字段:C# 在同一个应用程序中使用通用设置来连接mysql和ms sql?,c#,mysql,sql-server,C#,Mysql,Sql Server,我正在将一个delphi应用程序(使用mysql)转换为c#应用程序,要求能够连接mysql和MS SQL数据库 用户将通过文本框手动设置连接字符串中的以下字段: Server, Port, DataBase, UserID, Password 然后我将它们分配给连接字符串: connString = String.Format("Server={0}; Port={1}; DataBase={2}; Uid={3}; Pwd={4};", hostname, port, database,
Server, Port, DataBase, UserID, Password
然后我将它们分配给连接字符串:
connString = String.Format("Server={0}; Port={1}; DataBase={2}; Uid={3}; Pwd={4};", hostname, port, database, user, password);
但是,MySQL和MS SQL字符串是不同的。我可以有一个选项,让用户根据连接到的数据库在两个不同的字符串之间切换,但是,是否有一些通用的方法可以在不使用不同连接字符串的情况下在这两者之间进行切换,并且
SQLConnection
vsMySQLConnection
?MSSQL和MySQL的连接字符串不能“合并”并参数化以同时在两个dbms上工作。遗憾的是,它们都有一些没有重叠别名的关键字(例如用户Id)
比较:和
您应该考虑将模板存储在某个地方(例如在配置文件中),并用一个简单的函数构建连接字符串,读取模板并插入参数。(正如你基本上已经提到的)
那:connString=flagMySql呢?String.Format(“MYSQLCONNSTRING”,values):String.Format(“MSSQLCONNSTRING”,values)代码>?嗯,我不是还需要两个连接字符串吗?可能,是的。我不知道您是否可以将MySql conn字符串与MsSql conn字符串组合起来。
您可以添加类似的内容,具体取决于用户界面中选中的复选框项,让他们为透视服务器帐户输入用户名和密码。我目前使用Oracle和Sql Server进行此操作,效果非常好。。您将需要2个连接字符串不允许用户键入连接字符串太多的机会ERRORS@pfinferno如果这是您的意思,您需要两个连接字符串模板。也许您可以将SqlConnectionStringBuilder
用作DbConnectionStringBuilder
,如果MySQL有类似的工具,也可以使用它。
<appSettings>
<add key="MySQL" value="server={0};port={1};database={2};uid={3};password={4}"/>
<add key="MSSQL" value="data source={0}:{1};initial catalog={2};User Id={3};Password={4}; />
</appSettings>
public string GetConString(string dbms, string server, int port, string database, string user, string password
{
return String.Format(ConfigurationManager.AppSettings[dbms], server, port, database, user, password;
}