注意,使用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 插入、更新和删除的更多相关文章

  1. LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据

    http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...

  2. LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据 (转)

    http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...

  3. SQL.Cookbook 读书笔记4 插入更新和删除

    第四章 插入更新和删除 4.1 插入数据 ,'PROGRA','NEW YOURK'); 4.2 从一个表向另一个表中复制 insert into dept_east(deptno,dname,loc ...

  4. mySQL 教程 第5章 插入 更新与删除数据

    使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...

  5. MySQL入门很简单: 9 插入 更新与删除数据

    1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...

  6. mySQL 插入,更新和删除数据

    插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...

  7. SQL Server-已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行

    在更新没有设置主键的表的时候出现下图中的问题: 问题原因: 这种问题大多是由于没有主键(PK)导致同一张表中存在若干条相同的数据 DBMS存储时,只为其存储一条数据,因为DBMS底层做了优化,以减少数 ...

  8. MySQL笔记(三)之数据插入更新与删除

    INSERT INTO INSERT INTO 语句用于向表格中插入新的行. 语法: INSERT INTO 表 VALUES (值1, 值2,....) # 列数必须和值的个数匹配 INSERT I ...

  9. linq to sql 不能更新的问题

    今天在项目中用linq更新一个表的时候,结果怎么都更新不了,最蛋疼的是什么异常也不报,发现db.table1.isReadOnly为True 知道问题所在,百度后得到解决办法: 原来是我的表没有增加主 ...

随机推荐

  1. TOJ3650 Legal or Not

    Legal or Not   Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte Total Submit: 41   ...

  2. [Angular2 Router] Exiting an Angular 2 Route - How To Prevent Memory Leaks

    In this tutorial we are going to learn how we can accidentally creating memory leaks in our applicat ...

  3. IOS触摸事件和手势识别

    IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...

  4. 主流手持设备GPU性能比较

    设备 GPU CPU 每秒像素填充率 每秒三角形生成 内存 iPhone4 PowerVR SGX 535 ARM Cortex-A8 800M     512M iPod touch 4 Power ...

  5. 终端I/O之综述

    终端I/O有两种不同的工作模式: 规范模式输入处理(Canonical mode input processing).在这种模式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行 ...

  6. nexus-2.13.0-01.war

    https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.13.0-01.war

  7. QStyle 新风格的实现

      摸索了很久,实际实现才发现很简单. 利用qt助手搜style可以发现style的实现和qapplication有关,在Qapplication里面搜到函数: void QApplication:: ...

  8. win7配置nginx+php步骤

    1.下载nginx: http://www.nginx.cn/nginx-download 2.下载php : http://www.php.net/downloads.php  (线程安全与非安全参 ...

  9. 安装TortoiseGit出现提示“您必须安装带有更新版本Windows Installer服务的Windows Service Pack”-解决方法

    我的系统是xp sp3安装TortoiseGit时出现了错误提示“您必须安装带有更新版本Windows Installer服务的Windows Service Pack”. 解决方法,到微软官方下载相 ...

  10. Json格式理解

    json格式中共有三个重要符号"[","{",":" 中括号和花括号的唯一区别就是:中括号不需要key,花括号必须有key