目测前后两个sql语句根本是一模一样的
不明白你到底纠结在哪里

解决方案 »

  1.   

    if (tiaoma.Length != 12)
    if (Convert.ToInt32(dr) > 0)
    没有给出tiaoma和dr的定义,也无法知道你这都是在判断神马
    代码也不完整,描述也不清楚
      

  2.   

    此外,执行sdr.Read()之前,不先判断里面是否有行就去读取吗?
    把sql语句提出来,放数据库里执行,看到底能不能查询到数据
      

  3.   

    一个是boxcode 一个是casecode    应该是某个长度的问题
      

  4.   

    查询失败可能是因为你数据库里根本没有对应的10位条码数据
    你应该把sql语句放数据库里执行一下,先确定确实有数据,再纠结代码是否有问题
    而且我已经指出了你一个很严重的BUG:如果没有数据,也去执行read,然后直接报错,执行read之前根本没判断到底是否有无数据
      

  5.   

    if (tiaoma.Length != 12)
                {
                    strdr = "select c.productname 品种,b.batch 批号,b.casecode 大袋码,a.boxcode 小袋码,b.impdate 生产时间 from WlcLine_boxCode a,WlcLine_caseCode b,WlcBs_Product c where a.boxcode=‘" + tiaoma + "’ and b.casecode=a.casecode and c.productcode =b.productcode";
                }
                else
                {
                    strdr = "select c.productname 品种,b.batch 批号,b.casecode 大袋码,a.boxcode 小袋码,b.impdate 生产时间 from WlcLine_boxCode a,WlcLine_caseCode b,WlcBs_Product c where b.casecode=‘" + tiaoma + "’ and b.casecode=a.casecode and c.productcode =b.productcode";
                }
    1、tiaoma 用单引号引起来 '"+tiaoma +"'
    2、Convert.ToInt32(dr) > 0这是麽意思?!判断用dr!=null