标题:求助!bindingsource删除datagridview中的当前记录后,无法更新到数据源
只看楼主
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
结帖率:100%
 问题点数:0 回复次数:12 
求助!bindingsource删除datagridview中的当前记录后,无法更新到数据源
DatagridView绑定了Bindingsource,Bingdingsource也绑定了数据集,有一个删除的按钮,删除datagridview选中的当前记录,代码如下:
      xsxxbBindingSource.RemoveCurrent();
      xsxxbBindingSource.EndEdit();
运行时,点击按钮发现当时记录在datagridview上被删了.但是重新运行,发现该记录又回来了.说胆数据源的数据还是没有被删除掉的,只是删了数据集的数据?

要使用bindingsource来达到删除更新数据库中的数据目的,要怎样做呢? 具体代码应该怎么写?
我是初学者,请指教,谢谢各位大侠!
搜索更多相关主题的帖子: 数据源 datagridview 记录 删除 
2010-12-02 22:57
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:0 
建议连接到数据库,找到要删除的记录,把它在数据库里面删除,删除之前断开绑定,删除之后更新一下看看是否已经删除!!
2010-12-03 08:34
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
得分:0 
回复 2楼 c1_wangyf
你的意思是:还要另建command对象,写sql的delete from *** where 条件 的语句,再执行 ExecuteNonQuery() 方法吗?
2010-12-03 09:56
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:0 
基本上是这样的!!
2010-12-03 12:09
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
得分:0 
...这样代码要写很长吧,还要包括建adpter对象,重新填充数据集等等,有没有比较简短而有效的方法?
2010-12-03 13:21
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:0 
也就几行代码吧
2010-12-03 19:44
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
得分:0 
那在delete语句里,怎样写条件呢?怎样获得当前记录呢?
2010-12-03 23:42
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
得分:0 
        private void button1_Click(object sender, EventArgs e)
        {
          OleDbConnection ocon = new OleDbConnection(constr);
          textBox3.Text = studentDataSet.Tables["xsxxb"].Rows[dataGridView1.CurrentRow.Index][0].ToString ();
          string delstr = "delete from xsxxb where 学号 like \"" +studentDataSet. Tables["xsxxb"].Rows[dataGridView1.CurrentRow.Index][0]+ "\"";
          OleDbCommand ocd = new OleDbCommand(delstr, ocon);
          ocon.Open();
          ocd.ExecuteNonQuery();
          ocon.Close();
          studentDataSet.Clear();
          string sql = "select * from xsxxb";         //选全表
          OleDbDataAdapter  sda = new OleDbDataAdapter (sql, ocon );
          sda.Fill(studentDataSet, "xsxxb");
        }

我这样写了,还是删不掉...到底是错在哪里呢,应该怎么改?
2010-12-05 22:09
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:0 
string delstr = "delete from xsxxb where 学号 like \"" +studentDataSet. Tables["xsxxb"].Rows[dataGridView1.CurrentRow.Index][0]+ "\"";
这里like 后面应该用'而不是"
string delstr = "delete from xsxxb where 学号 like \'" +studentDataSet. Tables["xsxxb"].Rows[dataGridView1.CurrentRow.Index][0]+ "\'";
试试这个

2010-12-05 22:19
wingplay
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-5-20
得分:0 
回复 9楼 c1_wangyf
我刚去试了,还是不能删除掉呢
2010-12-05 23:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327731-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066364 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved