我有一个DataGrid dg,绑定的数据源是一个datatable dt,现在我想删除dg的一行,同时删除dt中的相应行,重新绑定来实现删除后的刷新由于dt的来源有很多,指的是根据不同的查询条件会得到不同的结果,查询的数据库中的表是固定的,所以不能从dt的来源上着手,只能从dt上着手,而用户可以对dg中的每一列进行排序,所以无法根据dg中选中行索引来得到它在dt中的索引可能需要通过主键来找到相应的行,请大家分表为单一主键和联合主键两种情况给出解决办法,多谢
例如我一个页面中dg的数据来源为表A,主键为id
另一个页面中dg的数据来源为表B,主键为uid,gid,name
例如我一个页面中dg的数据来源为表A,主键为id
另一个页面中dg的数据来源为表B,主键为uid,gid,name
解决方案 »
- 修改表以后,FORMVIEW中的E.value["Image"]不起作用了
- component names must be unique and case-insensitive
- JS脚本控制问题!
- VS2005中做ASP.NET应用找不到 Global.asax 文件
- 如何设置 VS 在项目运行时也能编辑源码!!!
- 如何设置VS2005在打开网站项目时不自动打开项目里文件呢?
- 怎样把aspx的文件变成doc文件(image sql server)(100分拜个早年)谢谢!
- SQL中怎样用update语句改变一个image字段为空
- 数据库字段变数组问题
- 请问怎样从数据库里提出前10个字符(不是记录)绑定到DATAGRID上?
- 学习ASP.Net
- Repeater控件问题
联合主键可以这样 dt.Columns.Add("keyId", typeof(string),"uid+','+gid");然后绑定.指定DataKeyField = "keyId";删除时先取出key值,然后用, 分成两个值.然后根据两个字段值去删除dt的数据.
dt.Rows.Find(id).Delete();
提示表没有主键还得麻烦慕白兄再指点一下,单一主键和联合主键都说明一下吧,多谢
dt.Rows.Find(id).Delete();
for (int i = 0; i < rows.Length; i++)
{
rows[i].Delete();
}
int selectedIndex = Convert.ToInt32(dg.SelectedRows[0]);
string id = dg.DataKeys[selectedIndex].ToString();
dt.PrimaryKey = new DataColumn[] {dt.Columns["uid"],dt.Columns["gid"] };
dt.Rows.Find(uid,gid).Delete();先结帖了,慕白兄如果有时间就帮我看看拆分的那样写对不对,如果没时间就不用了,我用到的时候再研究下