已解决 C# 调用 MySQLDriverCS 类库 报 vshost32-clr2.exe 已停止工作

时间:2022-08-13 23:44:58

已解决 C# 调用 MySQLDriverCS 类库 报 vshost32-clr2.exe 已停止工作

这几天修改一个项目是用C# 通过调用 MySQLDriverCS.dll 类库来操作 MySql数据库,

已解决 C# 调用 MySQLDriverCS 类库 报 vshost32-clr2.exe 已停止工作

调试的会发生以上错误(直接运行是正常的),刚开始以为是兼容性问题,吧此错误百度上一粘贴有的人说是offic 和 visual studio 的问题需要重装,实在不行重装系统就好了,可是我重装后问题依旧,后来发现不是每次执行 ExecuteNonQuery() 都报错,仔细一看原来是sql 语句写的有问题

但是try catch 捕捉不到,直接报这个错误;因为此项目是由vs2010 开发的,所以我估计是我的vs2012 和这个版本的MySQLDriverCS.dll 的兼容问题导致

下面是我还原的错误,调试的会发生以上错误(直接运行是正常的),代码如下:

 

using MySQLDriverCS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "select count(*1) from tab1;";//这里的特意写错的,调试时直接报错 try catch 捕捉不到
            MySQLConnection conn = new MySQLConnection("Data Source=test;Password=root;User ID=root;Location=localhost");

            try
            {
                conn.Open();
                if (new clsSql().ExecSql(conn, str))
                {
                    Console.WriteLine("ok");
                }
                else
                {
                    Console.WriteLine("failed");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                conn.Close();
            }
            Console.ReadKey();
        }
    }
}

这个问题出现的条件是 传入的sql语句有语法错误的时候,并且只有调试运行时才会报;

直接双击.exe 文件则没问题

我的运行条件:

win7 32位旗舰版 sp1

vs2012

MySQL 版本 mysql-essential-5.1.54-win32.msi

这个问题到不是很棘手,只不过没找到具体的原因

这是源码和MySql5.1的安装包:http://yunpan.cn/QbqqeRfQ6J8W2

我后来用同事的vs2010测试了一下是没有问题的,不报错且try catch 可以捕捉到