解决方案 »

  1.   

    你都用DataTable了,那为什么不直接用DataRow呢?  不要死读书啊
    if( mydataset.Tables.Count>0 && mydataset.Tables[0].Rows.Count>0)
    {
    DataRow row = mydataset.Tables[0].Rows[0];
    ....
    }
      

  2.   

    赋值之前你要先判断行数大于0啊.
    你这个赋值不就相当于
    datarow dr=mydataset.tables[0].rows[0]么
    表里面没有行你如何获取第一行?
      

  3.   

    第二个,SQL语句拼接的有问题.
    写的太乱了,直接看看不出来问题.
    你断点调试下,把字符串复制出来,放数据库客户端上执行,看到底怎么了
      

  4.   

    DefaultView[0] -> DefaultView\
      

  5.   

    你的dataset里面没数据吧。
    编程习惯上说或者规范上说,你要判断获取到的dataset里面是否有数据,有了再进一步操作。
      

  6.   

    Try {
    }catch
    {} 断点跟一下看看,要学会使用断点!一步步查找错误!
      

  7.   

    确实得加判断
    if( mydataset.Tables.Count>0 && mydataset.Tables[0].Rows.Count>0)
      

  8.   

    第一个加判断,第二个应该就是你的SQL语句问题,自己打断点获取下去数据库里面跑下,是否有主外键,自增列的问题存在
      

  9.   

    你可以先判断一下mydataset.Tables[0].Rows.Count > 0
      

  10.   

    defaultView不存在,引用肯定出问题,前面判断下是否存在。
      

  11.   

      第一个问题:你的数据行少于1行,就是没有行。为Null.
      第二个问题:你妹啊,能有个格式吗?好乱的说,CSDN有代码格式的
      

  12.   

       还有数据操作方法封装下,看起来很简洁,很明了,也能重用。参考微软的SqlHelper,可以先理解下三层架构,三层的实用性嘛,暂不讨论,思想还好的~