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 知道问题所在,百度后得到解决办法: 原来是我的表没有增加主 ...
随机推荐
- Mongodb集群配置(sharding with replica set)
转自:http://blog.csdn.net/zhangzhaokun/article/details/6269514 前言 最近在研习MongoDB集群,找到一个不错的例子,加了几句,按照自己的理 ...
- Unity3D中事件函数的运行顺序
Unity3D中脚本的生命周期是依照预先定义好的事件函数的运行流程来演化的,详细流程例如以下: Editor模式下Reset: 当脚本第一次被挂到GameObject上或用户点击Resetbutton ...
- win7配置nginx+php步骤
1.下载nginx: http://www.nginx.cn/nginx-download 2.下载php : http://www.php.net/downloads.php (线程安全与非安全参 ...
- 548 - Tree (UVa OJ)
Tree You are to determine the value of the leaf node in a given binary tree that is the terminal nod ...
- 标准库 - fmt/print.go 解读
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a B ...
- windows 7 与linux 双系统 安装
注意事项: 1.安装Linux的时候,一定要选 “空闲”的硬盘去创建标准分区,否则会格式化C盘或D盘windows的资料.[如 /dev/sda1 为c盘主分区,sda2为扩展分区---下面有D盘,E ...
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
前言 本文主要是对<ASP.NET 2.0开发指南>——<数据缓存>章节内容的提取并略有补充. 参考资料 1. <ASP.NET 2.0开发指南> 2. ...
- LOG4NET开源日志dll引用流程,在net3.5中已经实践ok
一,在app.config中配置 <?xml version="1.0"?><configuration> <configSections> & ...
- [SQLServer]学习总结笔记(基本涵盖Sql的所有操作)
--################################################################################### /* 缩写: DDL(Dat ...
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...