20150222—LINQ to SQL 插入、更新和删除
注意,使用LINQ to SQL时, 表中必须有一个主键才可以起效,否则系统将无法对数据作出修改
插入新数据,根据上一片的文章实例在其中添加新的控件:
编号TextBox(Name):sno
名字TextBox(Name):sname
性别TextBox(Name):ssex
生日DateTimePicker(Name):bir
班级TextBox(Name):sclass
以及 添加按钮
下面是添加按钮中的代码:
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时, 表中必须有一个主键才可以起效,否则系统将无法对数据作出修改)
再次查询的结果:
更新(修改)数据:
首先修改一下GridView的属性,以方便我们的操作,把行为中 SelectionMode 的值改为FullRowSelect,选中一行
然后在GridView中添加一个新的事件(在DoubleClick的右面双击即可):
在窗体中添加新的控件:
编号TextBox(Name):xiugai_bianhao;固定编号,将其属性--行为—Enabled修改为False
名字TextBox(Name):xiugai_mingzi
性别TextBox(Name):xiugai_xingbie
生日DateTimePicker(Name):xiugai_shengri
班级TextBox(Name): xiugai_banji
以及修改按钮
然后在刚刚新建的双击事件中写入以下代码:
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();//重要代码 不要遗漏 }
双击某一行:
然后在修改数据一组中修改数据:
点击修改,再次查询。
修改成功。
删除数据:
添加删除按钮,写入代码:
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();//重要代码 不要遗漏
}
选中一行点击删除按钮,再次查询:
删除成功。