表结构: t1 (mo_no,color_code,lot_code, size_code,qty)在DataGridView 中显示/编辑时要 把size_code  进行行列转换 比如:  E07/01-0007 ,H107,A7100,XL,100
        E07/01-0007 ,H107,A7100,X,100
        E07/01-0007 ,H107,A7100,S,100
   转为 :mo_no,color_code,lot_code,xl,x,s
        E07/01-0007 ,H107,A7100 ,100,100,100
其中 mo_no+color_code+lot_code + size_code 才能确定记录是否为一现在的问题是: 在DataGridView中修改原有记录后,我怎样才能根据最原始的
               mo_no+color_code+lot_code + size_code  找到数据库中的记录
               再保存?  不是要自已保存两个DataTable再进行比较吧?
               还有什么好办法没?
  

解决方案 »

  1.   

    数据库中 操作 行列 转换http://blog.csdn.net/hertcloud/archive/2007/04/05/1552626.aspx
      

  2.   

    to:hertcloud(·£孙子兵法£·)  Sql里面的行列转换 没问题,我问的不是这个 比如我转换出来后显示的记录为:  mo_no,color_code,lot_code,xl,x,s
                                    E07/01-0007 ,H107,A7100 ,100,100,100
     然后我在DataGridView中修改: H107 为B102, XL对应的数量为 200
     那么,在保存时,我要在数据表中找到  mo_no = E07/01-0007  and color_code = H107
                                    and lot_code = A7100 and xl =100的记录 ,然后更新
        怎么得到这行更新之前的值呢?
      
      

  3.   

    用 ICallbackEventHandler实现了
      

  4.   

    wǒ富贵
     我是Blueidea呀,接分来的
    还有就是顶。
      

  5.   

    用DataBindManager查看修改的行,然后将修改的行逐size_code列更新到数据库。
      

  6.   

    我感觉关键是数据库存储的行与datagridview 的行不一致。你可以只维护数据库的datatable,然后转化;修改时做技巧处理,比如选中一行单独弹出个窗体让用户在那里改,改完之后更新datagirdview同时,将datatable的行也更改,保存时还用原来的update。