框圖在上一篇文章中給出了,刪除、更新和插入一樣,也都有兩種方式,一種是在數據源的編輯器中設定相應的方法來實現,另一種是自己寫代碼完成。
下面先給出更新的代碼:
test_dbDataSet.courseRow cro;
test_dbDataSet.facultyRow fro;
if ( (course.Text == "") || (facultyid.Text == "") || (this.name.Text == "") || (this.num.Text == ""))
MessageBox.Show("有一項或者多項沒有填寫內容,請填寫完畢後再提交!");
else
{
///第一種方式 這裡更新都沒有更新表的主鍵,如果要更新主鍵最好方法就是找到該記錄,刪除它,然後在插入一個新的記錄。
if (cbupdate.Text == "tableAdater.update")
{
int f = facultyTableAdapter.Updatefaculty(this.name.Text, this.num.Text, this.facultyid.Text);
int c = courseTableAdapter.Updatecourse(this.course.Text, this.facultyid.Text);
if ((f > 0) && (c > 0))
MessageBox.Show("更新成功!");
else
MessageBox.Show("更新失敗!");
}
///第二種方式
else
{
string cid;
fro = test_dbDataSet.faculty.FindByfaculty_id(facultyid.Text);
fro = updatefacultydata(ref fro);
this.Validate();
facultyBindingSource1.EndEdit();
int f = facultyTableAdapter.Update(test_dbDataSet.faculty);
cid = courseTableAdapter.getcourseid_fid(facultyid.Text);
cro = test_dbDataSet.course.FindBycourse_id(cid);
cro = updatecoursedata(ref cro);
///this.Validate();
///facultyBindingSource1.EndEdit();
/// courseBindingSource1.EndEdit();
int c = courseTableAdapter.Update(test_dbDataSet.course);
if((f>0)&&(c>0))
MessageBox.Show("第二種方式更新成功!");
else
MessageBox.Show("第二種方式更新失敗!");
}
刪除的代碼:
test_dbDataSet.courseRow crow;
test_dbDataSet.facultyRow frow;
///首先會彈出對話框詢問是否要刪除數據。
if (MessageBox.Show("您確定要刪除數據嗎?", "delete", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
///第一種方式
if (cbway.Text == "tableAdater.delete")
{
string str;
str = facultyTableAdapter.getid(cbdelete.Text);
int k = facultyTableAdapter.Deletefaculty(str);
int j = courseTableAdapter.Deletecourse(str);
if ((k > 0) && (j > 0))
MessageBox.Show("刪除成功!");
else
MessageBox.Show("刪除失敗!");
}
/// 第二種方式:
else
{
string id = facultyTableAdapter.getid(cbdelete.Text);
frow = test_dbDataSet.faculty.FindByfaculty_id(id);
frow.Delete();
int f = facultyTableAdapter.Update(test_dbDataSet.faculty); ///這個函數返回的就刪除的記錄個數
string cid = courseTableAdapter.getcourseid_fid(id);
crow = test_dbDataSet.course.FindBycourse_id(cid);
crow.Delete();
int c = courseTableAdapter.Update(test_dbDataSet.course);
if ((c > 0) && (f > 0))
MessageBox.Show("第二種方式刪除成功!");
else
MessageBox.Show("第二種方式刪除失敗!");
}