MVC 学习(二)之Linq to Sql 简单Demo
Linq to Entities 已经我的一篇博文中阐述了,这里阐述一下简单的Linq to Sql 的增删改查。Linq to sql 与Linq to Entities虽然同属于DataBase-First,但存在着一些细小的差别。
Linq to Sql 的实体类载体的后缀为dbml。
此篇Demo的数据库与前一篇博文Linq to Entities的数据库一致,VS2010与Sql 2005。
首先 创建dbml文件。步骤如下
1、
2、
这样我们就建立好了dbml文件了,数据库连接的配置文件也已经在app.config文件中自动生成了。
No1、查询出所有学生的姓名、年龄以及所选课程,代码如下
Main()函数代码如下
StudentDataContext StudentDB = new StudentDataContext();
var Students = StudentDB.StudentInfo.ToList<StudentInfo>();
foreach (var student in Students)
{
Console.WriteLine(student);
string sourceName = string.Empty; foreach (var source in student.SourceInfo)
{
sourceName += source.SourceName + " ";
}
Console.WriteLine("所选课程有:" + sourceName); } public partial class StudentInfo
{
public override string ToString()
{
return string.Format("姓名:{0},年龄 {1}", this._SName, this._SAge);
}
}
No2、增加一个学生的信息,并且添加此学生所选课程。
如果我们不写Sql语句,则代码如下
StudentInfo StudentModel = new StudentInfo
{
SID = ,
SName = "范冰冰",
SAge =
};
SourceInfo SourceModel = new SourceInfo
{
SourceName = "高级护理",
StudentID =
};
StudentDB.StudentInfo.InsertOnSubmit(StudentModel);
StudentDB.SourceInfo.InsertOnSubmit(SourceModel);
StudentDB.SubmitChanges();
当然Linq to Sql是灵活的,它提供了ExecuteCommand等方法供我们写Sql语句。代码如下
string strSql = "insert into StudentInfo values({0},{1},{2})";
StudentDB.ExecuteCommand(strSql, new object[] { , "花样年华", });
No3、修改数据。
当不直接书写Sql语句修改数据时,需要将修改的数据取出,然后将需要更改字段的值重新赋值,最后提交给数据库。代码如下
var StudentModel = StudentDB.StudentInfo.SingleOrDefault(c => c.SID == );
StudentModel.SAge = ;
StudentDB.SubmitChanges();
如果使用Sql语句更新数据,代码如下
string strSql = "update StudentInfo set SAge=25 where SID=6";
StudentDB.ExecuteCommand(strSql);
No4、删除数据。代码如下(删除Sql语句这里我就不写了)
var StudentModel = StudentDB.StudentInfo.SingleOrDefault(c => c.SID == );
if (StudentModel != null)
{
StudentDB.StudentInfo.DeleteOnSubmit(StudentModel);
StudentDB.SubmitChanges();
}
至此,Linq to Sql简单的增删改查Demo就完成了。
MVC 学习(二)之Linq to Sql 简单Demo的更多相关文章
- MVC 学习(一)Linq to Entities 简单Demo
Linq定义了一组标准查询符号,标准查询符允许查询作用于所有基于IEnumerable<T>接口源. 我们看看LINQ的总体架构.如下图所示 EF4.1 数据操作及持久化,常见的是Data ...
- Linq to SQL 简单的增删改操作
Linq to SQL 简单的增删改操作. 新建数据库表tbGuestBook.结构如下: 新建web项目,完成相应的dbml文件.留言页面布局如下 <body> <form id= ...
- day 82 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- day 81 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- Linq to SQL 简单增删改查
用Linq大大减少了对数据库的一般操作所需的编码量.运行下面事例之前,首先建一个叫做Alien的数据库表. CREATE TABLE [dbo].[Aliens]( [Id] [int] IDE ...
- linq to sql简单使用
1.新建一个winform项目. 2.添加一个Linq to Sql 类,命名为Northwind 3.打开服务器资源管理器,将表拖动到linq to sql 类,实体类就由Vs生成了 4.实例化Da ...
- Spring 学习二-----AOP的原理与简单实践
一.Spring AOP的原理 AOP全名Aspect-Oriented Programming,中文直译为面向切面(方面)编程.何为切面,就比如说我们系统中的权限管理,日志,事务等我们都可以将其看 ...
- Linq to SQL 参考Demo
LINQ to SQL语句()之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句 ...
- MVC 知识点学习3(linq to sql)
1.通过DbContext对象的Database.SqlQuery执行sql语句 string query = "SELECT EnrollmentDate, COUNT(*) AS Stu ...
随机推荐
- Ajax封装方法
/* 调用方法 setInterval(function(){ ajax('get','json_php_html.php','',function(data){ data = JSO ...
- Spring-MVC开发之全局异常捕获全面解读
异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有 ...
- linux网络编程-(socket套接字编程UDP传输)
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...
- 分布式任务分发框架Gearman教程和PHP实现实例
1.Gearman介绍和使用场景 Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能.它的任务分布非常简单,简单得可以只需要用脚本即可完 ...
- CSS组件架构的设计思想
不管是设计思想,还是架构,都可以总结为一个词:AO模式.A表示Append,即“附加”的意思,O表示Overwrite,即“重写”的意思.所有的CSS组件都是沿用这种思想来设计的.这也是CSS的特性, ...
- Laravel 校验规则之字段值唯一性校验
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] laravel validator unique 'name' => 'required|unique:test,disp ...
- js 生成 yyyy-mm-dd 格式的逼格姿势
关于 js 生成 yyyy-mm-dd 格式,往往都会采取手动拼接,一般不愿意为了小功能而去动用 momentjs 之类的插件. ps: 只分享简单方法,网上有 N 多 dateformat 代码,这 ...
- No.1__C#
这是第一篇C#的日记,到现在为止已经学习了一个礼拜的C#了.由于是实习中才开始学习,所以这次不准备像在大学学习那样,拿着课本划重点,背概念.这应当是一门实践的课程,应该一边编程,一边学.这是到公司第一 ...
- .NET使用一般处理程序生成验证码
运行的效果图: HTML的代码: <head> <script type="text/javascript"> function changeCode() ...
- C++设计模式-AbstractFactory抽象工厂模式
AbstractFactory 要创建一组相关或者相互依赖的对象 作用:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. UML结构图: 抽象基类: 1)AbstractProdu ...