在GridView更新功能时,必须设置DataKeyNames属性.但是我还是不太理解这个属性有什么作用?
问题1:从MSDN上看DataKeyNames应该是要更新的表的主键.的确是这样,这个属性设成表的主键更新功能就晚上没有问题.但是我不知道这个属性发挥怎么样的作用?问题2:我把表的主键去掉,也就是说该表不指定任何主键字段,但是该表存在一个ID字段(也可能命名为*ID*,*代表其它字符,等格式).而我只要把这个ID字段名当做DataKeyNames属性值,更新功能也完全没有问题.
问题3:因为我不清楚DataKeyNames如何工作的,所以才会问这个问题.如果这个表中没有主键和类似的ID字段而所有字段都是需要更新的数据字段,是不是就不能完成这种更新功能?当然这中表的设计是很垃圾的,,我也只是随便问问....不要扔我... --------------------编程问答-------------------- update tablename where fieldname=@key.
因为更新数据必须有条件,没有条件就把所有数据都更新了,“DataKeyNames”就是指定条件中的key --------------------编程问答-------------------- 看看这个:
http://www.douban.com/group/topic/1379187/ --------------------编程问答-------------------- --------------------编程问答-------------------- Click the link to solve your problem.Good luck! --------------------编程问答-------------------- 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();
--------------------编程问答-------------------- 那个东西就是个值的东西了哦! 比如我们想想根据参数的不同来调用同一个方法的话,那么很好解决了哦!
根据值的不同来解决问题就好了嘛! --------------------编程问答-------------------- 问题1:设置datakeyname是要在点击行时获得该行数据的主键,以保证删除更新时准确性
问题2:你这样是没问题,datakeyname的作用是要绑定一个可以确定该行数据的一个字段,当然,比如是一个学校管理的系统,且学号唯一的话,你绑定为学号,对你的更新删除也是没有影响的
问题3:如果一个表中没有任何属性集合能确定一条唯一的数据的话,是没能实现该功能的。准确的说,是不能准确的实现更新删除的功能
个人浅见,各牛人莫见笑。。。 --------------------编程问答-------------------- 问题1:设置datakeyname是要在点击行时获得该行数据的主键,以保证删除更新时准确性
问题2:你这样是没问题,datakeyname的作用是要绑定一个可以确定该行数据的一个字段,当然,比如是一个学校管理的系统,且学号唯一的话,你绑定为学号,对你的更新删除也是没有影响的
问题3:如果一个表中没有任何属性集合能确定一条唯一的数据的话,是没能实现该功能的。准确的说,是不能准确的实现更新删除的功能
个人浅见,各牛人莫见笑。。。 --------------------编程问答-------------------- ID --------------------编程问答-------------------- czlsb1025 正解...它是提供一个用逗号割开的键值表,键值对应数据绑定时模型层和数据表的列名....然后在绑定后便可通过楼上这位大侠说的那样从表中依照获取数组值的方法获取绑定列中的唯一列或标识列的参数以备更新\删除时使用.满足数据库设计第三范式的话,一般而言是不会用到需要逗号的情况的......除非该表仅满足第二范式设计标准. --------------------编程问答-------------------- 主键 回复内容太短 --------------------编程问答-------------------- 通过这个属性,asp.net才能通知SQL,要更新哪条记录. --------------------编程问答-------------------- 打电话给微软,跟他喊,跟他叫,感动它!
补充:.NET技术 , ASP.NET