C# SQL c正在确定SQL server的类型
有人知道一种通过编程确定sql server是mysql还是mssql安装的好方法吗 我有一个c语言的应用程序,必须能够连接到mysql或mssql。如果我知道是哪一个,我可以连接到任何一个,但是我不能从连接设置中分辨出来,因为我得到的只是服务器名、用户名、密码和数据库名C# SQL c正在确定SQL server的类型,c#,mysql,sql,sql-server,C#,Mysql,Sql,Sql Server,有人知道一种通过编程确定sql server是mysql还是mssql安装的好方法吗 我有一个c语言的应用程序,必须能够连接到mysql或mssql。如果我知道是哪一个,我可以连接到任何一个,但是我不能从连接设置中分辨出来,因为我得到的只是服务器名、用户名、密码和数据库名 我可以让设置文件存储服务器的类型,但这为我希望避免的用户错误开辟了一条途径。创建类似于表的配置或设置,并将DB类型的记录放在那里。如果您访问的数据库是您的。尝试以MySQL连接,如果失败,请优雅地处理错误,然后尝试以MSSQL
我可以让设置文件存储服务器的类型,但这为我希望避免的用户错误开辟了一条途径。创建类似于表的配置或设置,并将DB类型的记录放在那里。如果您访问的数据库是您的。尝试以MySQL连接,如果失败,请优雅地处理错误,然后尝试以MSSQL连接。类似于此的东西可能适合您
string FindDbType(string connectionString)
{
try
{
// try to connect with MySql
return "MySql";
} catch()
{
try
{
// try to connect with MSSQL
return "MSSql";
} catch()
{
return "Cannot determine DB Type"
}
}
}
您可能希望单独处理错误,如密码不正确,但这应该可以让您开始。选择版本。这将在mysql上工作,并为您提供一个版本号。mssql等效选择@版本。两者都不应在相反的系统上工作。解决方法:使用try/catch块。尝试使用SQL Server驱动程序打开,如果失败,尝试使用mySQL驱动程序打开。翻转这些选项,首先捕获最常见的连接类型。您使用的是哪种类型的身份验证?如果是用户身份验证,则可以从连接字符串中判断。MySql=UID和Sql Server=User ID他可以通过ODBC连接到MSSQL和MySql。那么你是说你不能相信最终用户通过列表框选择正确的RDBMS系统?沃瑟斯。是的,尝试与1联系的答案…那么另一个答案就是你所能做的。jboeke你得到了最有用的答案,但我更愿意不做失败测试。对于其他答案,就像我在帖子中说的,我没有得到连接字符串,只有用户名、密码、服务器名和数据库名。没有要解码的连接字符串,因为我的代码构建了它;如果已经连接到服务器,则选择“版本”可以正常工作。