在QuestionList windows窗体中 ,添加了一个contextMenuStrip 然后添加了一个删除项,
现在要实现的是 选中某行 右键点击删除  刷新后  该行就被删除了
试了很多次删除一行 结果刷新后 什么都没有了
会用SqlCommandBuilder对象 修改数据  dataAdapter.Update(dataset,"Question")这个 刷新后就是修改后的数据

解决方案 »

  1.   

    你“选中某行”是在什么控件上操作的?
    如果是DataGridView,
    那么在菜单项的事件处理方法中加上:
    dataGridView.Rows.Remove(dataGridView.CurrentRow);
    new SqlCommandBuilder(dataAdapter);
    dataAdapter.Update(dataset,"Question")
      

  2.   

    这个方法有效诶。谢谢
    但是 有没有 delete 的方法呢,SqlCommandBuilder可以自动生成 insert  delete update 的功能
    还有像现在这样写的话,就要声明两次SqlCommandBuilder对象
           //删除数据
            private void TSMIDeleteQ_Click(object sender, EventArgs e)
            {
                DialogResult result = MessageBox.Show("确定要删除所选行吗?","提醒",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
                if (result == DialogResult.Yes)
                {
                    dGVQques.Rows.Remove(dGVQques.CurrentRow);
                    SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);
                    dataAdapter.Update(ds, "Question");
                }
            }
            //修改数据
            private void QSaveUpdate_Click(object sender, EventArgs e)
            {
                SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);
                dataAdapter.Update(ds,"Question");
            }
    也就是项数据库提交两次,很麻烦,有什么方法可以一次性提交 所有的  update delete 修改呢
      

  3.   

    当然可以一次性提交。
    关键看你怎么设计的。
    比如你可以在右键菜单里只执行:dGVQques.Rows.Remove(dGVQques.CurrentRow);
    需要提交时再:
    new SqlCommandBuilder(dataAdapter);
    dataAdapter.Update(ds,"Question");--------------------------------------
    那个“SqlCommandBuilder builder =”不需要