da(datagridview )和ds(dataset)绑定了
现在要做一个删除当前选中行的操作
ds.Tables[0].Rows[dataGridView1.CurrentRow .Index].Delete();
sda.Update(ds, "Customers"); //然后更新
这样有问题吗?
这么是可以,可是一旦点击da的列标题进行排序后,那么da和ds的行就不对应了,删除的就不是要删除的行了,这个得如何解决?
请高人指点
现在要做一个删除当前选中行的操作
ds.Tables[0].Rows[dataGridView1.CurrentRow .Index].Delete();
sda.Update(ds, "Customers"); //然后更新
这样有问题吗?
这么是可以,可是一旦点击da的列标题进行排序后,那么da和ds的行就不对应了,删除的就不是要删除的行了,这个得如何解决?
请高人指点
解决方案 »
- 一个简单的问题,关于Socket编程的
- C#中嵌套类有什么作用?
- 求授渔,winCE5.0 WinForm程序Button背景图
- 关于委托的一个实例的疑惑
- 关于vs2005下开发,用到文件右键菜单的疑问。
- 请教一下SQLDATAREADER的问题
- 在WORD模板中插入图片或文字一定要用书签吗???可以用绘制吗???
- 如何利用RegisterWindowMessage接收其他进程的消息~?
- 有.Net开发IE浏览器栏的源码吗
- ====刚学C#,来签个到,以后大家多多光照,发分哦!====
- treeview导致Page_Load的问题
- 为什么别人的 vs2003 安装好后 项目文件图标上有个 7.1 ?
this.dataGridView1.Rows.RemoveAt(index);
试试
你通过代码来更改da的值,ds是不会随着变的 ,ds不变,就没法更新数据库啊
原来dataset对dataGridView1 .Rows.RemoveAt(dataGridView1.CurrentRow .Index);可以捕获可是如果是修改行呢?
dataGridView1.Rows[0].Cells[0].Value = “123”;
这样做dataset就无法捕获了再用update就不能更新了
(不是在datagridview里进行编辑,换一种方式,比如比如在另一窗体什么的)
比如没排序前,da的第一行,和排序后da的第一行不一样啊,可是不管da怎么排序,ds的行顺序始终保持不变啊
da不是自带的排序功能吗
而ds 的顺序不会因为da的排序而变化啊
试试这个,另外,你可能要把自动排序关闭,自已写sort
我没有写排序事件,并且da不是自动排序,就是如果你点击某个字段的标题后,就按这个字段进行排序teachman_999(有美人兮,见之不忘,一日不见兮,思之如狂) (
你的方法好用
可是有点蒙,不是很明白,你这个是不是就是把da和ds的主键绑定了,不管da怎么排序,ds都始终和它锁定了?
那么每次对DataGridView的绑定和对相应的绑定数据源的修改,这个控件本身都会自动排序。
而this.dataGridView1.CurrentRow.Index这条语句并不对应绑定数据源中的顺序,
所以,我用主键找到绑定数据源中对应的行再进行修改.
删除画面选中的行,并且数据源中相对应得行的state为delete
/// <summary>
/// 从DataGridView的当前选择中,返回所绑定数据源的对应的行
/// </summary>
/// <param name="p_DataGridView">指定的DataGridView</param>
/// <returns>选择的数据行,如果没有选择,返回null</returns>
public static DataRow GetSeledRowFromDataGridView(DataGridView p_DataGridView)
{
DataRow row = null;
int nIndex = Tools.GetDataGridViewSelIndex(p_DataGridView);
if (nIndex < 0)
return row; DataGridViewRow drRow = p_DataGridView.Rows[nIndex];
row = drRow.DataBoundItem as DataRow;
if (row == null)
{
DataRowView dv = drRow.DataBoundItem as DataRowView;
if (dv != null)
{
row = dv.Row;
} }
return row;
}
Tools.GetDataGridViewSelIndex是另外一个函数,获取当前选择DataGridView行,你可以用p_DataGridView.CurrentCell.RowIndex、p_DataGridViewCurrentRow.Index等方式得到