不是能不能保存的问题,是用户新增一行后,什么都没有输入,这时候应该认为用户没有增加
数据,而我用了ROWS.ADD(DR).而rowstate是只读的属性,我没有办法通过设置它改变行属性。

解决方案 »

  1.   

    哦,你是用rowstate来判断是否执行保存的代码。
    这也是个问题,不过可以自己设个标志位来判断
      

  2.   

    我用来判断是否保存的条件是自定义一个变量,
    而且建议不要在DataGrid中进行数据的增加删除,修改等操作
      

  3.   

    在DataGrid直接操作数据库你的程序可读性很差,
    至少有一个中间层,隔离所有的数据库操作,
      

  4.   

    还没解决啊,其实你也可以用dataSet的getchanges()方法来判断啊
    if (dt.GetChanges() == null)
    {
    }
      

  5.   

    我觉得你在新增行的时候(mydatatable.Rows.Add())就可以对这一行的数据进行验证,如果是“null”,就不能在表中增加行的。这样就可以保证只要在表中新增一行就可以进行数据保存的。
      

  6.   

    在你新增一行纪录时,dataset中的datatable就有一行,其中这一行的id应该有值的(如果你这表没有id的话,我认为会出错)。这时如果你什么也不输入直接关闭,我认为它应该提示保存才正确,因为已经多了一行,虽然其他的列没有值,但至少id有值。所以我觉得你应该通过其他判断方法。
      

  7.   

    判断dr有没有添加到dataset如果添加成功dr=nothing
    如果没有成功添加则dataset.tables(0).rows.remove(dr),dr=nothing