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

        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上建的数据库做测试用 会不会有影响啊 哪位大哥帮忙看一下哪的代码有问题 还是别的问题 这是我做的第一个程序啊 谢谢各位了

慕无忌1623718
浏览 460回答 3
3回答

米脂

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

慕桂英546537

是当时不显示变化 但是下次再运行程序的时候就有变化了 只是操作和数据库的更新不同步 不知道是datagridview的原因还是数据库的原因 我先试试你说的方法 谢谢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server