我是用textbox绑定查询的结果,查询后可以在textbox里直接更新数据。但更新完数据后如何数据库里的内容是更新了,但程序只有重新启动才能看到数据库更新的结果。如何不用重新启动程序就能看到结果?

解决方案 »

  1.   

    记住,一定在更新数据库之后再调用myDataTable.AcceptChanges();
    不然更新不会提交到数据库。
      

  2.   

    不行啊 我把代码贴出来了 谁能帮我看一下? 
       OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=C:\\CRM.mdb");
       conn.Open();
       sql = "insert into client(cname,csort,company,dept,duty,address,web,email,zipcode,phone,mobile,fax,homephone) values('" + cname + "','" + csort + "','" + company + "','" + dept + "','" + duty + "','" + addr + "','" + web + "','" + email + "','" + zc + "','" + phone + "','" + mobile + "','" + fax + "','" + hp + "')";
        OleDbCommand sc = new OleDbCommand(sql, conn);
        sc.ExecuteNonQuery();
        cRMDataSet.client.AcceptChanges();
      

  3.   

    另外,程序里的BindingSource和TableAdapter都是系统自动生成的
      

  4.   

    如何重新绑定啊?我的BindingSource是用.net自动生成的,找不到绑定用的代码阿?
      

  5.   

    应该是顺序的问题,
    试试
    你在TEXTBOX控件的LEAVE事件里写那句
    myDataTable.AcceptChanges();
      

  6.   

    数据是更新了。但是,你并没有把数据重新绑定到你的TextBox中去。可以用代码重新绑定。
      

  7.   

    重新绑定的代码是不是这样: cnameTextBox.DataBindings.Add("Text", cRMDataSet, "client.cname");
    但是还是不能显示出来更新后的结果,是不是dataset需要更新一下阿?