private void Cource_Load(object sender, EventArgs e)
{
//fill dataset by using .GetAllCourses() function
DataSet ds = new DataAccess.newCourcesDAC().GetAllCourses();
//define and set BindingSource to tblCourses of dataset
BindingSource BS = new BindingSource();
BS.DataSource = ds;
BS.DataMember = "tblCourses";
//bind datagridview to Bindingsource
ds.Tables["tblCourses"].RowChanging += new DataRowChangeEventHandler(Cource_RowChanging);
dataGridView1.DataSource = BS;
//bind for texbox to navigat 4 column of Cource table
txtCourseID.DataBindings.Add("Text", BS, "CourseID");
txtCourseName.DataBindings.Add("Text", BS, "CourseName");
txtPrequest.DataBindings.Add("Text", BS, "Prequest");
txtCourseContent.DataBindings.Add("Text", BS, "CourseContent");
}
**void Cource_RowChanging(object sender, DataRowChangeEventArgs e)
{
if (e.Action==DataRowAction.Add)
{
if (((int)e.Row["CourseID", DataRowVersion.Proposed]) < 10)
{
e.Row.SetColumnError("CourseID", "cource id must < 10");
e.Row.CancelEdit();
}
}
}**
我有一個帶有4列的表(tblCourse)的數據集(ds),它使用bindingsource綁定到4個文本框。 我想通過RowChanging事件向數據表添加新記錄時驗證數據。無法在OnRowChanging事件中調用CancelEdit()
我想在發生指定的條件時用[e.Row.CancelEdit();]取消行。
但我收到此錯誤: 無法在OnRowChanging事件內調用CancelEdit()。拋出異常以取消此更新。
你嘗試到 「拋出一個異常取消此更新」? – 2012-07-18 07:47:06