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

admin2年前手机赚钱344
本文介绍了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 
       }

    }
}


相关文章

在京东购买化妆品的女士们注意了!京东618就要来啦,京东化妆品的优惠券在哪领?

在京东购买化妆品的女士们注意了!京东618就要来啦,京东化妆品的优惠券在哪领?

在京东购买化妆品的伙伴们注意了,领取化妆品优惠券可以抵扣现金使用,每件化妆品算下来也能省个几十块钱呢。下面就教大家如何领取京东化妆品的优惠券,有需要的伙伴可以看一看。首先我们进入京东优惠券平台,可能大...

微鲤看看(头条)邀请码提现 , 填写邀请码的方法

微鲤看看(头条)邀请码提现 , 填写邀请码的方法

微鲤看看是一款通过阅读就能赚钱的新闻软件,原来叫做微鲤头条,现在改名为微鲤看看,更 改后的软件功能更加齐全,资讯内容都是最热门的各类新闻,包括娱乐新闻,体育新闻,生活类新 闻等,而且会根据用户的不同需...

疯狂猜成语邀请码434710152,疯狂猜成语一天能赚多少钱?

疯狂猜成语邀请码是多少?疯狂猜成语邀请码: 434710152  长按复制“疯狂猜成语”是一款非常好玩的休闲益智游戏,主要玩法是看图猜成语和成语接龙,玩家在玩游戏时会不知不觉的积累大量成语词...

闲来象棋邀请码XL339421153,注册送1元(玩法攻略分享)

闲来象棋邀请码XL339421153,注册送1元(玩法攻略分享)

登录后,可免费领取10000红包券(1元现金)。去下象棋,无论输赢,玩一局后,即可返回到“我的”页面提现1元,秒到微信零钱!闲来象棋邀请码填写步骤如下打开闲来象棋APP,然后在底部导航菜单中点击”我的...

新用户一定要扫码并微信关注的小程序【全站Logo】-东小店

微视邀请码Q34RAQ,QQ0DDC  只需长期使用提现即可。快手将于近日完成IPO前最后一轮融资,此轮融资为腾讯领投,博裕资本、云锋基金、淡马锡、红杉跟投。本次F轮融资额近30亿...

闲来跑得快邀请码XL335281230,闲来跑得快赚金版邀请码

闲来跑得快赚金版app是一款相当适合锻炼牌技的棋牌游戏平台,游戏中的角色采用的是卡通造型的人物,游戏场景还是非常的怀旧的,感兴趣的网友来下载闲来跑得快赚金版吧。 闲来跑得快赚金版十分酷炫的棋...

发表评论    

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