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 知道问题所在,百度后得到解决办法: 原来是我的表没有增加主 ...
随机推荐
- VS2010: Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments 未注冊
VS2010 缺少Team Foundation Server Power Tools 下载地址: http://visualstudiogallery.msdn.microsoft.com/c255 ...
- jquery easyui from 表单返回乱码!
如果用easyui的form进行提交,必须在<form>标签中加入属性method="post",即<form method="post"&g ...
- HDU 4605 Magic Ball Game 树状数组
题目大意很简单. 有一颗树(10^5结点),所有结点要么没有子结点,要么有两个子结点.然后每个结点都有一个重量值,根结点是1 然后有一个球,从结点1开始往子孙结点走. 每碰到一个结点,有三种情况 如果 ...
- apache apr介绍
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库.在早 ...
- 编写一个简单的Jquery插件
1.实现内容 定义一个简单的jquery插件,alert传递进来的参数 2.插件js文件(jquery.showplugin.js) (function ($) { //定义插件中的方法 var me ...
- c++ 设计模式6 (Decorator 装饰模式)
4. “单一职责”类模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任. 典型模式代表: Decorato ...
- ios-uitableviewcell展开
#import <UIKit/UIKit.h> @interface ZSDHelpCell : UITableViewCell @property (weak, nonatomic) I ...
- Android(java)学习笔记265:Android线程形态之 HandlerThread
1. HandlerThread Android HandlerThread 完全解析 Handler与HandlerThread区别,HandlerThread应用(对比AsyncTask) 备注 ...
- TCP/IP协议原理与应用笔记25:网际协议(IP)之 数据报(Datagram)
1. 数据报(Datagram)格式: 2. 长度字段 (1)首部长度字段, bits 以 4 字节(即32bits)为单位 取值:5~15(即首部长度为20 ~ 60 bytes) (2)总长度字段 ...
- iOS开发libWeChatSDK.a(WXApiObject.o)' does not contain bitcode.
在使用微信分享的时候可能会报错, 报错如下: ld: '/Users/gti/Documents/********/Lib/SDKExport/libWeChatSDK.a(WXApiObject.o ...