20150222—LINQ to SQL 插入、更新和删除

注意,使用LINQ to SQL时, 表中必须有一个主键才可以起效,否则系统将无法对数据作出修改

插入新数据,根据上一片的文章实例在其中添加新的控件:

编号TextBox(Name):sno

名字TextBox(Name):sname

性别TextBox(Name):ssex

生日DateTimePicker(Name):bir

班级TextBox(Name):sclass

以及 添加按钮

image

下面是添加按钮中的代码:

private void tianjia_Click(object sender, EventArgs e)
        {
            string sno = bianhao.Text.Trim();//编号TextBox
            string sname = mingzi.Text.Trim();//名字TextBox
            string ssex = xingbie.Text.Trim();//性别TextBox
            DateTime bir = shengri.Value;//生日
            string sclass = banji.Text.Trim();//班级TextBox

            if (sno != "" || sname != "" || ssex != "" || sclass != "")
            {
                DataClasses1DataContext dc = new DataClasses1DataContext();
                //根据要添加信息的表的表名初始化这个表的类
                Student stu = new Student
                {
                    Sno = sno,
                    Sname = sname,
                    Ssex = ssex,
                    Sbirthday = bir,
                    Class = sclass,
                };
                //以下两行代码是修改数据库的重要代码,不能遗漏,否则会无法修改数据
                dc.Student.InsertOnSubmit(stu);//修改内存中的数据
                dc.SubmitChanges();//将修改的数据写入到数据库中。

                MessageBox.Show("添加成功!");
            }
            else
            {
                MessageBox.Show("请填入完整信息");
            }
        }

尝试添加新的数据,(注意,使用LINQ to SQL时, 表中必须有一个主键才可以起效,否则系统将无法对数据作出修改)

image

再次查询的结果:

image

更新(修改)数据

首先修改一下GridView的属性,以方便我们的操作,把行为中 SelectionMode 的值改为FullRowSelect,选中一行

image

然后在GridView中添加一个新的事件(在DoubleClick的右面双击即可):

image

在窗体中添加新的控件:
编号TextBox(Name):xiugai_bianhao;固定编号,将其属性--行为—Enabled修改为Falseimage

名字TextBox(Name):xiugai_mingzi

性别TextBox(Name):xiugai_xingbie

生日DateTimePicker(Name):xiugai_shengri

班级TextBox(Name): xiugai_banji

以及修改按钮

image

然后在刚刚新建的双击事件中写入以下代码:

private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            //这里的代码只是将选中信息写入到修改分组中
            xiugai_bianhao.Text = dataGridView1.SelectedCells[0].Value.ToString().Trim();//编号
            xiugai_mingzi.Text = dataGridView1.SelectedCells[1].Value.ToString().Trim();//名字
            xiugai_xingbie.Text = dataGridView1.SelectedCells[2].Value.ToString().Trim();//性别
            xiugai_shengri.Value =DateTime.Parse(dataGridView1.SelectedCells[3].Value.ToString());//生日
            xiugai_banji.Text = dataGridView1.SelectedCells[4].Value.ToString().Trim();//班级
        }

注:查询选中的一行中的单元格,其单元格的索引从左到右依次为0,1,2,3,…..

修改按钮:

private void button3_Click(object sender, EventArgs e)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();

            var xiu = dc.Student.Single(m => m.Sno == xiugai_bianhao.Text);//根据编号确定所在行
            xiu.Sname= xiugai_mingzi.Text.Trim();//  修改 名字
            xiu.Ssex = xiugai_xingbie.Text.Trim();// 性别
            xiu.Sbirthday = xiugai_shengri.Value;//生日
            xiu.Class = xiugai_banji.Text.Trim();//班级

            dc.SubmitChanges();//重要代码 不要遗漏

        }

双击某一行:

image

然后在修改数据一组中修改数据:

image

点击修改,再次查询。

image

修改成功。

删除数据:

添加删除按钮,写入代码:

private void button4_Click(object sender, EventArgs e)
        {
             DataClasses1DataContext dc = new DataClasses1DataContext();

              var del = dc.Student.Single(m => m.Sno == dataGridView1.SelectedCells[0].Value);//根据编号确定要删除的数据
                dc.Student.DeleteOnSubmit(del);//删除语句

                dc.SubmitChanges();//重要代码 不要遗漏
        }
image

选中一行点击删除按钮,再次查询:

image

删除成功。

原文地址:https://www.cnblogs.com/Tirisfal/p/4297448.html