C# ';System.AccessViolationException';在C中从mysql/sql客户端切换到ODBC客户端时#
我有一个c#代码,它从xml文件中获取参数,并从传递到xml的.sql文件中执行命令 对于不同类型的连接,我有一个case语句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
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”