Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL c正在确定SQL server的类型_C#_Mysql_Sql_Sql Server - Fatal编程技术网

C# SQL c正在确定SQL server的类型

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

有人知道一种通过编程确定sql server是mysql还是mssql安装的好方法吗

我有一个c语言的应用程序,必须能够连接到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你得到了最有用的答案,但我更愿意不做失败测试。对于其他答案,就像我在帖子中说的,我没有得到连接字符串,只有用户名、密码、服务器名和数据库名。没有要解码的连接字符串,因为我的代码构建了它;如果已经连接到服务器,则选择“版本”可以正常工作。