c# - 使用通用设置在同一应用程序中连接到 mysql 和 ms sql?

标签 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, user, password);

但是,MySQL 和 MS SQL 字符串是不同的。我可以有一个选项,让用户根据他们连接到的数据库在两个不同的字符串之间切换,但是是否有一些通用的方法可以在不使用不同的连接字符串和 SQLConnectionMySQL连接

最佳答案

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/

相关文章:

c# - 在 c#.net 中使用 iTextSharp 合并多个 PDF

sql - 从另一个数据库访问用户定义的表类型

Mysql回溯插入,这个数据从哪里来?

sql-server - 加入和总结多列

.net - 是否有用于读取 DACPAC 文件的库?

c# - 使用 JSON 将继承的对象传递给 WCF 服务

c# - IDocumentSession.SaveChanges() 与事务

C# .net framework- 边框仅在表单的一侧

mysql - 无法永久设置 UTC 时区

mysql - 一旦达到数据类型限制,处理数字序列主键的策略是什么