下面是一个书上的范例,但是我怎么也不能点击Save保存textBox修改后的数据。那位大侠能帮帮我!在使用DataGrid捆绑直接使用sqlDataAdapter1.Update(customerDataSet1);就可以了!为什么与textBox捆绑就不能更新!

private void btnEdit_Click(object sender, System.EventArgs e)
{
customerDataSet1.Clear();
sqlDataAdapter1.Fill(customerDataSet1);
CurrentPosition();
         }
private void btnSave_Click(object sender, System.EventArgs e)
{
sqlDataAdapter1.Update(customerDataSet1);
MessageBox.Show("Database updated!");
}
private void btnBack_Click(object sender, System.EventArgs e)
{
btnBack.BindingContext[customerDataSet1, "tblCustomer"].Position -=1 ;
CurrentPosition();
}
private void btnNext_Click(object sender, System.EventArgs e)
{
btnNext.BindingContext[customerDataSet1, "tblCustomer"].Position +=1 ;
CurrentPosition();
}
private void CustomerForm_Load(object sender, System.EventArgs e)
{
}
private void CurrentPosition()
{
int currentPosition, ctr;
ctr = this.BindingContext[customerDataSet1, "tblCustomer"].Count;
if(ctr == 0)
{
txtDisplayPosition.Text = "(There are no records in the Customer table.)";
}
else 
{
currentPosition = this.BindingContext[customerDataSet1, "tblCustomer"].Position + 1;
txtDisplayPosition.Text = currentPosition.ToString() + " of " + ctr.ToString() ;
}
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
customerDataSet1.Clear();
}
private void Exit_Click(object sender, System.EventArgs e)
{
Form1 newForm1 = new  Form1();
newForm1.Show();
this.Hide();
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
}
private void txtDisplayPosition_TextChanged(object sender, System.EventArgs e)
{
}
private void btnBack_Click_1(object sender, System.EventArgs e)
{
btnBack.BindingContext[customerDataSet1, "tblCustomer"].Position -=1 ;
CurrentPosition();
}
private void sqlDataAdapter1_RowUpdated(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e)
{
}
}
}

解决方案 »

  1.   

    没有DataSource,那该怎么捆绑更新数据库呢,用DataSet可以吗?
      

  2.   

    这样绑定以后,是不是就可以直接使用sqlDataAdapter1.Update(customerDataSet1);来更新数据了!
      

  3.   

    问题已经解决了,谢谢大家帮忙!
    确实要用到 bindmanagebase
      

  4.   

    BindingManagerBase myBind=this.BindingContext[this.dataSet1,"information"];
    还要在更新前:
    mybind.endcurrentedit