在QuestionList windows窗体中 ,添加了一个contextMenuStrip 然后添加了一个删除项,
现在要实现的是 选中某行 右键点击删除 刷新后 该行就被删除了
试了很多次删除一行 结果刷新后 什么都没有了
会用SqlCommandBuilder对象 修改数据 dataAdapter.Update(dataset,"Question")这个 刷新后就是修改后的数据
现在要实现的是 选中某行 右键点击删除 刷新后 该行就被删除了
试了很多次删除一行 结果刷新后 什么都没有了
会用SqlCommandBuilder对象 修改数据 dataAdapter.Update(dataset,"Question")这个 刷新后就是修改后的数据
解决方案 »
- 用C#调用C++写的dll时出现"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"
- 大家一起来帮助 C#变得好,关于异步模型的建议
- 将字符串写入文本文档乱码 编码用Encoding.ASCII 急
- 为什么调用SetConsoleCtrlHandler的时候会有异常?
- 周末加班搞,作不出来我就要回老家了
- 如何在动态改变水晶报表中框对象(box)的颜色
- 如何获取Remoting中远程对象的IP地址
- SQLITE是否可以把整个TABLE插入?
- checkboxlist 如何设置其中一个item的选中状态
- 求软件公司实习(北京地区)
- 新手求助,關於文件傳輸和獲取的問題
- 小女子又来提问有关数据结构的基础问题,求教(有关前,中,后缀表达式)
如果是DataGridView,
那么在菜单项的事件处理方法中加上:
dataGridView.Rows.Remove(dataGridView.CurrentRow);
new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataset,"Question")
但是 有没有 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 修改呢
关键看你怎么设计的。
比如你可以在右键菜单里只执行:dGVQques.Rows.Remove(dGVQques.CurrentRow);
需要提交时再:
new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(ds,"Question");--------------------------------------
那个“SqlCommandBuilder builder =”不需要