C# 如何判断连接字符串属于MySql还是SQL Server?

C# 如何判断连接字符串属于MySql还是SQL Server?,c#,mysql,sql-server,connection-string,C#,Mysql,Sql Server,Connection String,有没有一种方法可以在不打开连接的情况下测试连接字符串是否有效 我需要找出连接字符串是MySql连接字符串还是SQL Server连接字符串 编辑 这是我试过的 var connectionString = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" MySqlConnectionStringBuilder mySqlBuilder; try { mySqlBuilder = new My

有没有一种方法可以在不打开连接的情况下测试连接字符串是否有效

我需要找出连接字符串是MySql连接字符串还是SQL Server连接字符串

编辑

这是我试过的

var connectionString = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"

MySqlConnectionStringBuilder mySqlBuilder;
try { mySqlBuilder = new MySqlConnectionStringBuilder(connectionString); }
catch { mySqlBuilder = null; }

SqlConnectionStringBuilder msSqlBuilder;
try { msSqlBuilder = new SqlConnectionStringBuilder(connectionString); }
catch { msSqlBuilder = null; }
mySqlBuilder
msSqlBuilder
都将接受连接字符串,不会引发异常


另外,
MySqlConnectionStringBuilder.ToString()
返回
server=myServerAddress;数据库=myDataBase;用户id=我的用户名;password=myPassword

这取决于您的连接方式,如果在连接字符串中指定用户名和密码,则存在差异:

使用用户名/密码的MS SQL Server连接字符串:

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
使用用户名/密码的MySql连接字符串:

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

因此,您可以检查连接字符串是否包含
Password
Pwd

,在某些情况下,这可能是不可能的。例如,如果您使用DNS格式,由于详细信息存储在其他位置,因此无法判断。@FarhadJabiyev让我澄清一下,我只有一个字符串,格式正确,可以放入MySqlConnectionStringBuilder或MsSqlConnectionStringBuilder。如果未指定用户ID和密码,该怎么办?MsSql是否需要指定IntegratedSecurity?编辑:我想这没关系,因为,好吧,MySql必须有一个Uid和密码才有效。对于MS SQL,我想你要么需要集成的,要么需要用户名/密码。好吧,MySql只支持用户名/密码。我很有希望,但显然这行不通。它看起来像是
MySqlConnectionStringBuilder.ToString
server=myServerAddress的格式返回;数据库=myDataBase;用户id=我的用户名;password=myPassword
@TrevorPilley Server=myServerAddress;数据库=myDataBase;Uid=我的用户名;Pwd=我的密码;还可以使用MS SQL。