MySql.Data.MySqlClient.MySqlException'发生在MySql.Data.dll中

admin2年前手机赚钱337
本文介绍了MySql.Data.MySqlClient.MySqlException'发生在MySql.Data.dll中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从c#应用程序查询MySQL数据库.下面是代码,在这里我正在使用parameterized query 

 public static void ValidateName(MySqlConnection conn,List<Employee> EmpList, string Group)
 {   string selectQuery = "Select Name from Employee where Group = @Group  AND @Name in (FirstName, LastName);";
   using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn))
    {     for (int i = 0; i < EmpList.Count; i++)
      {
        cmd.Parameters.Add("@Group", MySqlDbType.VarChar).Value = Group;
        cmd.Parameters.Add("@Name", MySqlDbType.VarChar).Value = EmpList[i].Name;
        var reader = cmd.ExecuteReader();
        List<string> lineList = new List<string>();        while (reader.Read())
        {
            lineList.Add(reader.GetString(0));
        }        if (lineList.Count <=0)
        {           WriteValidationFailure(EmpList[i], "Failed");
        }
}       
}

但是上面的代码在下面一行说

 cmd.Parameters.Add("@Group", MySqlDbType.VarChar).Value = Group;


类型为'MySql.Data.MySqlClient.MySqlException'的未处理异常 MySql.Data.dll'@Group中已经发生了


推荐答案

之所以发生这种情况,是因为您在每次迭代中都添加了相同的参数集.您可以在每次迭代中清除然后在启动循环之前添加它们,并在每次迭代期间更改现有参数的值.我认为第二种选择会很棒.我还要在此处指定关于阅读器的另一件事,您必须将阅读器用作using变量,以便每次将其放置在using块的末尾时,您的代码就可以正常工作.这意味着您可以尝试这样的事情:

using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn))
{
    cmd.Parameters.Add(new MySqlParameter("@Group", MySqlDbType.VarChar));
    cmd.Parameters.Add(new MySqlParameter("@Name", MySqlDbType.VarChar));    for (int i = 0; i < EmpList.Count; i++)
    {
        cmd.Parameters["Group"].Value = group;
        cmd.Parameters["Name"].Value = EmpList[i].Name;
        // rest of code here       using (MySqlDataReader reader = cmd.ExecuteReader())
       {
           // Process reader operations 
       }

    }
}


相关文章

带有现金奖励的小程序,在家也能用微信赚钱了

带有现金奖励的小程序,在家也能用微信赚钱了

带有现金奖励的小程序。微信小程序现在已经被很多人熟识了,小程序的功能非常地多,在节省手机空间的基础上,也方便了人们的吃穿住行。不过你知道吗,通过小程序,我们还能获得现金奖励,补贴一下家用。在这里我推荐...

东小店是哪个公司的?东小店的公司为,宿迁嘉时信息技术有限公司

东小店是哪个公司的?东小店的公司为,宿迁嘉时信息技术有限公司

东小店是哪个公司的?我们打开企业查询的企信宝:得到结果,东小店的公司为,宿迁嘉时信息技术有限公司91321311MA1RABTA4T再查询,宿迁嘉时信息技术有限公司它的股东为,北京京东世纪贸易有限公司...

趣头条邀请码是多少.阅读详细获得方法分享!

018年9月趣头条赴美上市,趣头条(邀请码A938933243,看趣味新闻首选)成为国内上市速度最快的互联网公司之一,平台4000万的DAU,股价开盘几小时内大起大落,盘中一度涨超190%,五次熔断后...

东小店通关秘笈第五步:如何更多的成长值,升级精英店长——京东东小店官方培训系列课程

东小店通关秘笈第五步:如何更多的成长值,升级精英店长——京东东小店官方培训系列课程

想要做好东小店,就得不断提升店长等级,等级越高开放的权益越多,同时收益也会逐步提高。然而提升等级的唯一标准就是:成长值。下面就跟大家讲一讲东小店成长值的相关内容。东小店学习第五步:成长值如何获得成长值...

快看点APP类似的有哪些?类似快看点app的平台有哪些?

快看点APP类似的有哪些?类似快看点app的平台有哪些?

快看点邀请码FX513G还有抖音极速版,快手极速版,火山极速版等等。...

飞读小说红包码K95YAS,飞读小说APP是一款免费看小说赚钱软件

飞读免费小说官方邀请下载,飞读小说APP是一款免费看小说赚钱软件,现在新用户免费领7天金币,满2元就可提现微信。该软件官方开发为上海玄霆娱乐信息科技有限公司。最新邀请码 :K95YAS 看小...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。