为了账号安全,请及时绑定邮箱和手机立即绑定

winform程序Datagridview和数据库不能达到与操作的同步

winform程序Datagridview和数据库不能达到与操作的同步

慕无忌1623718 2018-12-07 00:47:18
        private void btnDelete_Click(object sender, EventArgs e)        {            //只能显示            string sql = "delete from T_Cost where HasConfirm=0 ";            //如果datagridview的当前行被选中            if (dgvEntry.CurrentRow.Selected)            {                //将sql语句 delete from T_Cost where HasConfirm=0 and CostId =(CostId号)                sql = sql + "and CostcostIDDataGridViewTextBoxColumn"].Value.ToString());            }            int n = 0;            SqlConnection conn = new SqlConnection(connStr);            SqlCommand cmd = new SqlCommand(sql, conn);            conn.Open();            n = cmd.ExecuteNonQuery();            conn.Close();            if (n > 0)            {                MessageBox.Show("删除成功!");            }            else            {                MessageBox.Show("不存在的ID!");            }            //删除完后 刷新一下当前数据            Refresh();        } 例如上边的这个 删除成功以后调用refresh方法 datagridview中的数据不能更新 而且有时候插入数据的时候数据库中的数据也不更新 但是下次再运行程序的时候数据已经插入或者删除了 是这个刷新的方法有问题还是数据库有缓存啊 我是在本地VS上建的数据库做测试用 会不会有影响啊 哪位大哥帮忙看一下哪的代码有问题 还是别的问题 这是我做的第一个程序啊 谢谢各位了
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

Refresh()是你自己写的方法还是 winform里那个Refresh()。如果是后者,这个方法仅仅是重新绘制控件。如果你要刷新数据,你的再加载一遍数据,或者把删除的数据从gridview里写代码删除。建议你看看.net里的数据绑定相关知识,你这样写又费劲又不好维护。可以绑定dataSet或者其他数据集,这样数据集改变了,控件上的数据也同步改变,然后你在后台写代码将数据集的数据和数据库中的数据保持同步。

查看完整回答
反对 回复 2019-01-07
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

是当时不显示变化 但是下次再运行程序的时候就有变化了 只是操作和数据库的更新不同步 不知道是datagridview的原因还是数据库的原因 我先试试你说的方法 谢谢

查看完整回答
反对 回复 2019-01-07
  • 3 回答
  • 0 关注
  • 459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信