C#中数据库的更新和剔除记录的两种实现方式

C#中数据库的更新和删除记录的两种实现方式

框图在上一篇文章中给出了,删除、更新和插入一样,也都有两种方式,一种是在数据源的编辑器中设定相应的方法来实现,另一种是自己写代码完成。

下面先给出更新的代码:

         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("第二种方式删除失败!");


                }