日期:2014-05-17  浏览次数:20833 次

请问:update为什么不能立即更新数据库
public partial class bm : Form
    {
        public bm()
        {
            InitializeComponent();
        }

        DataBase db = new DataBase(); //自行开发的数据库连接类,保证没问题
        DataSet ds = new DataSet();
        SqlDataAdapter da;
        DataRow dr;
        SqlCommandBuilder scb;

        private void bm_Load(object sender, EventArgs e)
        {
            db.Open();
            da = new SqlDataAdapter("select * from bm", db.con);
            da.Fill(ds);
            scb = new SqlCommandBuilder(da);
            dataGridView1.DataSource = ds.Tables[0];
        }

        private void bm_FormClosed(object sender, FormClosedEventArgs e)
        {
            db.Close();
        }

        private void 存盘按钮_Click(object sender, EventArgs e)
        {
            da.Update(ds);
        }
}

请问:为什么点击“存盘按钮”时,数据库无法立即更新(因为我想要数据库立即得到更新)?必须关闭窗口后数据库才会更新?不知是何原因?

 请各位高手赐教!

------解决方案--------------------
引用:
 试下就算改成这个也不过是正在关闭的时候执行,就是你按下了关闭按钮后执行,这样的话。数据库更新了,但是窗口仍然关闭了。让人感觉的估计也是关闭后更新。。。
 db.Open();db.Close();这两个可以加在db.Close();或da.Update(ds);的前后,bm_Load 进入的时候判断是否Open;不过这就太重复代码;可以试下专门写几个方法,分别执行查询,更新,添加,删除;以后直接传入SQL语句调用方法就可以了