我正在努力将 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, user, password);
但是,MySQL 和 MS SQL 字符串是不同的。我可以有一个选项,让用户根据他们连接到的数据库在两个不同的字符串之间切换,但是是否有一些通用的方法可以在不使用不同的连接字符串和 SQLConnection
与 MySQL连接
?
最佳答案
MSSQL 和 MySQL 的连接字符串无法“合并”和参数化以同时在两个 dbms 上工作。遗憾的是,两者都有一些没有任何重叠别名的关键字(例如用户 ID)。
比较:https://www.connectionstrings.com/mysql/和 https://www.connectionstrings.com/sql-server/
您应该考虑将模板存储在某处(例如在您的配置中),并使用读取模板并插入参数的简单函数构建连接字符串。 (正如您基本上已经提到的)
<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;
}
关于c# - 使用通用设置在同一应用程序中连接到 mysql 和 ms sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704244/