Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# ';System.AccessViolationException';在C中从mysql/sql客户端切换到ODBC客户端时#_C#_.net_Mariadb_Odbc_Access Violation - Fatal编程技术网

C# ';System.AccessViolationException';在C中从mysql/sql客户端切换到ODBC客户端时#

C# ';System.AccessViolationException';在C中从mysql/sql客户端切换到ODBC客户端时#,c#,.net,mariadb,odbc,access-violation,C#,.net,Mariadb,Odbc,Access Violation,我有一个c#代码,它从xml文件中获取参数,并从传递到xml的.sql文件中执行命令 对于不同类型的连接,我有一个case语句 switch (type) { case @"type=mysql": conn = new MySqlConnection(connection); break; case @"type=odbc": conn = new OdbcConnection(conne

我有一个c#代码,它从xml文件中获取参数,并从传递到xml的.sql文件中执行命令

对于不同类型的连接,我有一个case语句

switch (type)
{
    case @"type=mysql":
        conn = new MySqlConnection(connection);
        break;

    case @"type=odbc":
        conn = new OdbcConnection(connection);
        break;

}
当我使用mySql或sql客户端运行时,它工作正常:

MySqlCommand queryCmd = new MySqlCommand(query, con);
queryCmd.ExecuteNonQuery();
但是当我切换到odbc客户机时

OdbcCommand queryCmd = new OdbcCommand(query, con);
queryCmd.ExecuteNonQuery();
我明白了

“引发异常:读取访问冲突。stmt为nullptr。”和 “System.AccessViolationException:'尝试读取或写入 受保护的内存。这通常表示其他内存不可用 腐败的。”


更新::我使用sql server连接进行了测试,这确实正确执行。与MariaDb连接一起使用时失败。这也会在执行时失败,而不是在连接上。

什么最终对我有效:

  • 选中该选项以在数据源配置中启用多个语句
  • 在连接字符串中添加“OPTIONS=92344352”

听起来您的查询中有什么东西使ODBC驱动程序崩溃了。要么是一个bug,要么是查询中有不太正确的地方。如果您可以共享导致查询崩溃的查询,人们可能会为您提供更多信息。请检查您的连接字符串。如果您需要处理此类异常,@MartinCostello在任何查询中都会以这种方式崩溃。下面是连接字符串“Driver={MariaDB ODBC 3.1 Driver};TCPIP=1;Server=127.0.0.1Database=mysql;Uid=root;Pwd=admin;Port=3306”更新::我使用sql Server连接进行了测试,并且执行正确。与MariaDb连接一起使用时失败。这也会在执行时失败,而不是在连接上。