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();//重要代码 不要遗漏
}

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

删除成功。
20150222—LINQ to SQL 插入、更新和删除的更多相关文章
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据 (转)
http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...
- SQL.Cookbook 读书笔记4 插入更新和删除
第四章 插入更新和删除 4.1 插入数据 ,'PROGRA','NEW YOURK'); 4.2 从一个表向另一个表中复制 insert into dept_east(deptno,dname,loc ...
- mySQL 教程 第5章 插入 更新与删除数据
使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...
- MySQL入门很简单: 9 插入 更新与删除数据
1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...
- mySQL 插入,更新和删除数据
插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...
- SQL Server-已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
在更新没有设置主键的表的时候出现下图中的问题: 问题原因: 这种问题大多是由于没有主键(PK)导致同一张表中存在若干条相同的数据 DBMS存储时,只为其存储一条数据,因为DBMS底层做了优化,以减少数 ...
- MySQL笔记(三)之数据插入更新与删除
INSERT INTO INSERT INTO 语句用于向表格中插入新的行. 语法: INSERT INTO 表 VALUES (值1, 值2,....) # 列数必须和值的个数匹配 INSERT I ...
- linq to sql 不能更新的问题
今天在项目中用linq更新一个表的时候,结果怎么都更新不了,最蛋疼的是什么异常也不报,发现db.table1.isReadOnly为True 知道问题所在,百度后得到解决办法: 原来是我的表没有增加主 ...
随机推荐
- UVA1099----Sharing Chocolate----在集合上的DP
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- [置顶] Android开发之MediaPlayerService服务详解(一)
前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...
- Android微信SDK API 调用教程【转】
原文:http://blog.csdn.net/worker90/article/details/8211451 最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官 ...
- Android如何完全调试framework层代码
1 之前写过一篇文章:<Android实现开机调试system_process> 2 google的eclipse插件ADT的已经能够很方便的调试Android的apk了,但是调试的时候应 ...
- 【百度地图-安卓SDK】从头开始写android程序
[百度地图-安卓SDK]从头开始写android程序首先确保有这四个文件 安装jdk先安装android开发SDK(并不只是为eclipse服务的),即运行installer_r15-windo ...
- 【JavsScript】JavaScript MVC 框架技术选型
你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于 ...
- [原创]-CMD命令设置IP地址
问题描述 在实际工作中,尤其是像我们这种BI分析人员,在做项目的时候,时常都需要因客户的不同随时切换不同的网络环境,有时可能需要在公司和客户之间来回的穿梭.交替.问题也就随之而来:每次客户那里都需要设 ...
- LeetCode37 Sudoku Solver
题目: Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated b ...
- InActon-日志分析(KPI)
我参照的前辈的文章http://blog.fens.me/hadoop-mapreduce-log-kpi/ 从1.x改到了2.x.虽然没什么大改.(说实话,视频没什么看的,看文章最好) 先用mave ...
- iOS runtime 运行时( - )
谈到运行时,相对应的就有编译时: 1).运行时-- 直到程序运行时才去确定一个对象的具体信息,并且可以改变这个类的具体信息,包括它的方法,变量等等: 2).编译时-- 是在程序运行之前,编译的时候,就 ...