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



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

我有不同类型连接的案例说明。

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"one_answers"System.AccessViolationException:'试图读取或写入受保护的内存。这通常表明其他内存腐败。">

update::我使用sql server连接进行了测试,这确实可以正常执行。与MariaDb连接一起使用时失败。同样,这在执行时失败,而不是在连接时。

最终对我起作用的是:

  • 选中该选项以在数据源配置中启用多条语句
  • 添加";OPTIONS=92344352〃;到连接字符串

最新更新