winform窗体中用DataGrid显示数据库的删除记录问题

SmallCase 2003-07-02 11:19:52
问题:
winform窗体中用DataGrid显示数据库的删除记录问题。删除行数据前,如果对记录排过序,删除的实际记录就不能与DataGrid选中的当前记录对应。我是菜鸟,请大家帮忙。
代码:
//定义变量
private OleDbConnection myconn;
private OleDbDataAdapter da;
private DataSet ds=new DataSet();
//初始化
private void Form1_Load(object sender, System.EventArgs e)
{
myconn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=md.mdb");
da=new OleDbDataAdapter("SELECT * FROM MD",myconn);
da.Fill(ds,"md");
//在DataGrid中显示,也用过绑定的方法
dataGrid1.DataSource=ds.Tables["md"].DefaultView;
}
//按下删除按钮
private void button1_Click(object sender, System.EventArgs e)
{
int cur;
//命令生成器
OleDbCommandBuilder cust=new OleDbCommandBuilder(da);
//当前选中行号
cur=dataGrid1.CurrentRowIndex;
//删除当前表当前行
ds.Tables["md"].Rows[cur].Delete();
//更新
da.Update(ds,"md");
ds.AcceptChanges();
}
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbx1979 2003-07-03
  • 打赏
  • 举报
回复
用dataview来处理
kuangsha007 2003-07-03
  • 打赏
  • 举报
回复
上面是把你的dataGrid 绑定到dataView
或者
BindingManagerBase bmbIntouch = datagrid1.BindingContext[this.dataset,TableName];
DataRowView drvIntouch =(DataRowView) bmbIntouch.Current;
DataRow myDataRowIntouch = drvIntouch.Row;
myDataRowIntouch.Delete()
kuangsha007 2003-07-03
  • 打赏
  • 举报
回复
DataRow row = {this.dataView1[this.dataGrid1.CurrentRowIndex].Row};
row.Delete();
eastseasea 2003-07-03
  • 打赏
  • 举报
回复
这样可以了

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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