铁路校友博客(在线答题有奖成语版定制开发)

一个混迹互联网十余年的老站长-Good Luck To You!

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

本文介绍了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 
       }

    }
}


发表评论:

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

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
  • 移动广告联盟大全
  • AI时代:普通人2024年一定要学会使用AI。
    盘古AI
    推荐使用:地铁图。
    qingguitong
    --------------- 我的微信联系方式
    wx
    AIyun
    博主推荐低价香港主机
    盘古AI
    PC时代:我把一个关键字做到百度第一,一年挣了15万。
    移动互联网时代:
    1.“我们要早点明白,我们都是赚的平台红利和时代红利的钱”
    2.“我们以为的技巧,能力,努力,在平台和时代面前,如此不堪一击”。
    3.“别把红利当能力,别把平台当能力”。
    最后一句与君共勉:“谁道人生无再少?门前流水尚能西!休将白发唱黄鸡!”
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

关于我们:本人从2011年开始网络创业, 自学 建站,7年手机副业经验。网站内容:本站是本人记录生活感悟,读书学习的网站,希望能对大家有所帮助。网名:光影 职业:SEO营销顾问籍贯:四川广安,定居成都 电话:个V:wx374241337 邮箱:374241337@qq.com 【腾讯云】轻量新用户上云福利,2核2G4M 低至 65元/年 , 超大容量云硬盘 0.5折起! https://cloud.tencent.com/act/cps/redirect?redirect=1079&cps_key=50f8a4cb23c2e06ea4eb495d47786825&from=console