update tablename where fieldname=@key.
因为更新数据必须有条件,没有条件就把所有数据都更新了,“DataKeyNames”就是指定条件中的key

解决方案 »

  1.   

    看看这个:
    http://www.douban.com/group/topic/1379187/
      

  2.   

    Click the link to solve your problem.Good luck!
      

  3.   

    GridView取某行的DataKeys   首先绑定DataKeyNames 
    GridView.DataKeyNames = new string[] { "字段名称" }; 
    取值 
    string aaa= GridView.DataKeys[e.Row.RowIndex].Value.ToString();———————————————————————————————————————————————DataKeyNames="FID"   绑定一个值
    GridView1.DataKeys[e.Row.RowIndex].Value.ToString();DataKeyNames="FID,FName"   绑定两个值
    GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString();
    GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString();
     
      

  4.   

    问题1:设置datakeyname是要在点击行时获得该行数据的主键,以保证删除更新时准确性
    问题2:你这样是没问题,datakeyname的作用是要绑定一个可以确定该行数据的一个字段,当然,比如是一个学校管理的系统,且学号唯一的话,你绑定为学号,对你的更新删除也是没有影响的
    问题3:如果一个表中没有任何属性集合能确定一条唯一的数据的话,是没能实现该功能的。准确的说,是不能准确的实现更新删除的功能
    个人浅见,各牛人莫见笑
      

  5.   

    问题1:设置datakeyname是要在点击行时获得该行数据的主键,以保证删除更新时准确性
    问题2:你这样是没问题,datakeyname的作用是要绑定一个可以确定该行数据的一个字段,当然,比如是一个学校管理的系统,且学号唯一的话,你绑定为学号,对你的更新删除也是没有影响的
    问题3:如果一个表中没有任何属性集合能确定一条唯一的数据的话,是没能实现该功能的。准确的说,是不能准确的实现更新删除的功能
    个人浅见,各牛人莫见笑
      

  6.   

    czlsb1025 正解...它是提供一个用逗号割开的键值表,键值对应数据绑定时模型层和数据表的列名....然后在绑定后便可通过楼上这位大侠说的那样从表中依照获取数组值的方法获取绑定列中的唯一列或标识列的参数以备更新\删除时使用.满足数据库设计第三范式的话,一般而言是不会用到需要逗号的情况的......除非该表仅满足第二范式设计标准.
      

  7.   

    通过这个属性,asp.net才能通知SQL,要更新哪条记录.