我在form1有一个bindingSource1和一个datagridview,数据源相同,我点  bindingSource1的删除控件,datagridview里的内容给删除了。但数据库中的内容并没有删除。我删除按钮的点击事件写了如下代码:
        private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
        {
            DialogResult dlr = MessageBox.Show(this, "确定要删除记录吗?", "确定删除吗!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
            try
            {
                switch (dlr)
                {
                    case DialogResult.Yes:
                        {
                            bindingSource1.EndEdit();
                            scb = new SqlCommandBuilder(sda);
                            scb.GetDeleteCommand();
                            sda.Update(dt);
                           
                            break;
                        }
                    case DialogResult.No:
                        break;
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString());
            }
        }
但会出错。怎么回事?

解决方案 »

  1.   

    BindingSource控件介绍:
    http://amberlife.net/csharp/bsSummary.html
      

  2.   

    BindingSource控件:
    http://blog.csdn.net/sunzhenlin2008/archive/2008/06/11/2535958.aspx
      

  3.   

    bindingSource1.removeAt(bindingSource1.position)
    bindingSource1.update(dataset.table)
      

  4.   

    bindingsource没有updata的方法啊。
    刚才说错了。form1的是 bindingNavigator1
    我想知道是不是鼠标在 bindingNavigator1上点击了。datagridview就指向下一个记录啊
      

  5.   

    我不是有sqldataada。updata(datatable)吗。我点击 bindingNavigator1里的红叉。删除的好像只有内存表中的数据,数据库里的并没有删除。我点 bindingNavigator1里的加号的时候。数据库里的表也没增加记录。然后我在 bindingNavigator1里加了个保存按钮在里面写了以下代码:
     bindingSource1.EndEdit();
                scb.GetInsertCommand();
                scb.GetUpdateCommand();
                scb.GetDeleteCommand();
                sda.Update(dt);
    点击删除按钮后,再点保存,可以删除,但增加了记录后,点保存却出错。但是如果我直接拉个button过去,单击事件里用同样的代码。又可以保存。怎么回事
      

  6.   

    bindingNavigator1里保存按钮:
    bindingSource1.EndEdit()
    datagridview1.endEdit()
    sda.update(dt)这样试试》
      

  7.   

    我是这样做的.
    if (MessageBox.Show("确定保存你所做的改变吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                {
                    this.Validate();
     
           
                    this.BindingSource1.EndEdit();
                    this.TableAdapter1.Update( this.salaryDataSet.Salary);
                }
                return;这种数据源方式更新没有问题.测试通过
      

  8.   

    分两步
    1.是删除datagridview中的数据
    dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
    2.是删除数据库中对应记录