dataGrid中是否可以定义两个datakeyfield????

lllqe 2003-08-25 03:21:39
如果行,以下代码应该怎样改:
我想设置FID,FROW 为datakeyfield,他们是不可见列。有以下更新程序,目的是通过FID,FROW 更新基本数量
String updateCmd = "UPDATE t_outentry SET 基本数量 = @quantity where FID = @Id And FRow=@Row";
SqlCommand myCommand = new SqlCommand(updateCmd, cn);
myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int ));
myCommand.Parameters.Add(new SqlParameter("@quantity", SqlDbType.Decimal,18));
myCommand.Parameters.Add(new SqlParameter("@Row", SqlDbType.Int ));
//运行后出错(controls[4]是不可见列,为子段FID):
s1=((TextBox)e.Item.Cells[(int)e.Item.ItemIndex].Controls[4]).Text;
//运行后出错(controls[5]是不可见列,为子段FRow):
s2=((TextBox)e.Item.Cells[(int)e.Item.ItemIndex].Controls[5]).Text;
myCommand.Parameters["@Id"].Value =s1;
myCommand.Parameters["@Row"].Value =s2;
myCommand.Parameters["@quantity"].Value = ((TextBox)e.Item.Cells[4].Controls[3]).Text;
try
{
myCommand.ExecuteNonQuery();

}
catch (SqlException exc)
{
}
...全文
85 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuzhonghe 2003-11-11
  • 打赏
  • 举报
回复
up
brotherq 2003-11-11
  • 打赏
  • 举报
回复
凌晨5点时,急中生智,解决了这个问题:
select key1+key2 as mainkey,key,key2,key3,....from [mytable]
...


update [mytable] set .... where mainkey=key1+key2
webdiyer 2003-08-27
  • 打赏
  • 举报
回复
我做过这样的程序,用一个ViewState就很完美地解决了,当然前提是在一个页面中显示数据和更新,如果是在别的页面更新,那ViewState就用不成了。

--------------------------------
AspNetPager 免费分页控件4.2版发布,同时发布最新源代码,欢迎下载:http://www.webdiyer.com
阿拉丁 2003-08-27
  • 打赏
  • 举报
回复
我的办法:
如果是SQLServer,将ID一道select出来,用作主键
如果是oracle,将ROWID一道select出来,用作主键
效果都不错,而且简单
lllqe 2003-08-26
  • 打赏
  • 举报
回复
若我的表中存在两个主键,那改怎样解决此问题,是否应该在dataGrid中定义两个datakeyfield,或有什么更好的解决方法?????
imlizheng 2003-08-26
  • 打赏
  • 举报
回复
嘿!真失败,十几天前我问过类似问题,只低了三十分居然没人回答,郁闷……
chnking 2003-08-26
  • 打赏
  • 举报
回复
s1=((TextBox)e.Item.Cells[4].Controls[4]).Text;
s2=((TextBox)e.Item.Cells[4].Controls[5]).Text;
lwgj 2003-08-26
  • 打赏
  • 举报
回复
up
kinglht 2003-08-26
  • 打赏
  • 举报
回复
up!
仙人掌 2003-08-26
  • 打赏
  • 举报
回复
这样看来可以加N个DataKey了 呵呵~
saucer 2003-08-26
  • 打赏
  • 举报
回复
add an additional column to your DataTable, and use that as the DataKeyField, for example

DataTable1.Columns.Add("MyNewKey", typeof(string), "keyColumn1 + '#' + keyColumn2");

..
DataGrid1.DataKeyField = "MyNewKey";

when you are retrieving it, just split the string into two parts
vivaldi16 2003-08-25
  • 打赏
  • 举报
回复
没见过,

我也遇到处理这种情况,只好自己写代码了
goody9807 2003-08-25
  • 打赏
  • 举报
回复
up
edobnet 2003-08-25
  • 打赏
  • 举报
回复
应该不可以,datakeyfield好像是关键字啊,除非是两个字段组成一个关键字!.
up一下吧!
仙人掌 2003-08-25
  • 打赏
  • 举报
回复
up~ 没见过这种情况 关注~

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧