译:在C#中使用LINQ To SQL

译文出处:http://www.codeproject.com/Tips/871938/LINQ-To-SQL-Using-Csharp

今天在这个话题中,我给大家分享一个在c#编程中非常有趣和十分有用的特性。

开始之前,我想告诉大家关于Linq的基本信息。比如:什么是linq?然后再来分享实际应用。

说明:

LINQ = Language Integrated Query(集成查询语言

Linq是微软在.NET Framework 3.5中信增加的一个特性。它是用来查询数据库和对数据库查询的本地集合带来安全性。它非常简单但是很有组织性。一个普通的查询语言,适用于SQL, XML, 本地collections 和 第三方APIs 比如SharePoint.

本质上,Linq提供的就是一个轻量级的编程数据集成。这是非常有价值的,尤其是当今每天面对的数据和未来的大数据。

接下来我们就看看这个神秘的东东。

第一步:

  • 打开你的Visual Studio 并且创建一个新的控制台项目.
  • 然后打开服务器资源管理,创建一个新的数据库,新增一张表增加几个字段。
  • 打开你的项目的解决方案目录,右击工程点击添加新增项。
  • 查找LINQ-To-SQL 并添加。
  • 你会看到一个空白的文件,在这个文件中你可以拖动你的表放在 LINQ-To-SQL .dbml 文件扩展上.

第二步:

我将声明一些类,添加一些类成员。

1 class Program
2     {                            // this is  program class
3         private int id;
4         private string name;
5         private string fname;
6         private int age;
7         private string sem;
8 }

第三步:

这里我将告诉大家如何通过 LINQ-To-SQL 向数据库中插入数据。

 1 public void insert()
 2         {
 3 // these are the class data members through we will send our objects data in the database
 4             Console.WriteLine("Enter id");
 5             id = Convert.ToInt32(Console.ReadLine());
 6             Console.WriteLine("Enter name");
 7             name = Console.ReadLine();
 8             Console.WriteLine("Enter father name");
 9             fname = Console.ReadLine();
10             Console.WriteLine("Enter age");
11             age = Convert.ToInt32(Console.ReadLine());
12             Console.WriteLine("Enter semester");
13             sem = Console.ReadLine();
14 // this is the data context class the main class which handles
15 // all the functionality in this will pass the connection string of our database file.
16             LTSDataContext LTS = new LTSDataContext
17             (@"Data Source=(LocalDB)\v11.0;
18             AttachDbFilename=C:\Users\Ehtesham Mehmood\Documents\Visual Studio 2012\Projects19             ConsoleApplication5\ConsoleApplication5\SDatabase.mdf;
20         Integrated Security=True;Connect Timeout=30");
21         // this is the table class which we drag on our linq to sql file
22             Student objStudentTable = new Student();
23             objStudentTable.Id = id;
24             objStudentTable.Name = name;
25             objStudentTable.Father_Name = fname;
26             objStudentTable.Age = age;
27             objStudentTable.Semester = sem;
28             LTS.Students.InsertOnSubmit(objStudentTable); // this is built in function.
29             LTS.SubmitChanges();// here is the final query will run in the data context class.
30         }

第四步:展示数据

 1 void Display()
 2         {
 3             LTSDataContext LTS = new LTSDataContext(@"Data Source=(LocalDB)\v11.0;
 4             AttachDbFilename=C:\Users\Ehtesham Mehmood\Documents\Visual Studio 2012\Projects 5             ConsoleApplication5\ConsoleApplication5\SDatabase.mdf;
 6         Integrated Security=True;Connect Timeout=30");
 7             var selectQuery = from s in LTS.Students
 8                               select s;
 9             foreach (Student s in selectQuery)
10             {
11                 Console.WriteLine(s.Id + "\t" + s.Name + "\t" +
12         s.Father_Name + "\t" + s.Age + "\t" + s.Semester);
13             }
14         }

第五步:删除数据

 1 void Delete()
 2         {
 3             int iid = 0;
 4             Console.WriteLine("Enter the Id of the student u want to delete?");
 5             iid = Convert.ToInt32(Console.ReadLine());
 6
 7             LTSDataContext LTS = new LTSDataContext(@"Data Source=(LocalDB)\v11.0;
 8             AttachDbFilename=C:\Users\Ehtesham Mehmood\Documents\Visual Studio 2012\Projects 9             ConsoleApplication5\ConsoleApplication5\SDatabase.mdf;
10         Integrated Security=True;Connect Timeout=30");
11             var delete = from p in LTS.Students
12                          where p.Id == iid
13                          select p;
14             LTS.Students.DeleteAllOnSubmit(delete);
15             LTS.SubmitChanges();
16             Student objStudentTable = LTS.Students.Single(c=> c.Id == iid);
17         }

第六步:更新数据

 1 void update()
 2         {
 3             LTSDataContext LTS = new LTSDataContext(@"Data Source=(LocalDB)\v11.0;
 4             AttachDbFilename=C:\Users\Ehtesham Mehmood\Documents\Visual Studio 2012\Projects 5             ConsoleApplication5\ConsoleApplication5\SDatabase.mdf;
 6         Integrated Security=True;Connect Timeout=30");
 7             Student objStudentTable = new Student();
 8             int iid = 0;
 9             Console.WriteLine("Enter the Id of the student u want to update ?");
10             iid = Convert.ToInt32(Console.ReadLine());
11
12             Console.WriteLine("Enter the new name of the student u want to update?");
13             string up = (Console.ReadLine());
14                 var update = from s1 in LTS.Students
15                              where s1.Id == iid
16                              select s1;
17                 foreach (var v in update)
18                     v.Name = up;
19                 LTS.SubmitChanges();
20         }

主函数:

1 static void Main(string[] arg){
2
3            Program p1 = new Program();     // creates object
4            p1.insert();
5            p1.Display();
6            p1.Delete();
7            p1.update();
8             Console.ReadKey();
9         }

感谢您的阅读,请留下您的足迹。

Cheers! Enjoy coding. 

时间: 2024-10-10 11:19:21

译:在C#中使用LINQ To SQL的相关文章

LINQ To SQL 语法及实例大全

LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c

LINQ to SQL语句入门篇 纯属转载

Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c; 再如:筛选1994 年或之后雇用的雇员:

【转载】ADO.NET与ORM的比较(3):Linq to SQL实现CRUD

[转载]ADO.NET与ORM的比较(3):Linq to SQL实现CRUD 说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据.在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第

●LinQ to SQL

ORM(O—Object对象,R—Relation关系,M—Mapping映射) 表名——类名 列名——属性名 表的关系——类的成员对象 LinQ——集成化查询语言               SQL——结构化查询语言 LinQ包括:LinQ to SQL.LinQ to Object.LinQ to DataSet.LinQ to Entity LinQ to SQL 第一步:建立LinQ to SQL类(项目右键→“添加”→“类”→“数据”中的“LINQ to SQL类”→在服务器资源管理器

Windows Phone本地数据库(SQLCE):2、LINQ to SQL(翻译)(转)

首先.要说到的是,windows phone 7.1上基本的数据库功能是SQL Compact关于Mango的一个实现,使用linq to sql访问存储在数据库上的数据. 1.LINQ to SQL是什么 LINQ to SQL 是一个作为.NET Framework上的一部分的ORM(对象关系映射)框架.它允许你映射你的业务对象(business object)(模型类)到数据库中的表,然后可以不用写单一的SQL语句来访问或查询数据库中的数据.随着Mango的更新,LINQ to SQL现在

c# LINQ to SQL

list例: List<result_1> list = get_lately_fifty_data(); List<int> number_count = (from c in list orderby c.Number ascending select c.Count).ToList(); datatable例: var q = from p in dt.AsEnumerable() where p.Field<string>("username"

LINQ to SQL语句(1)之Where(抄的好)

Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c; 再如:筛选1994 年或之后雇用的雇员:

LINQ to SQL语句(13)之开放式并发控制和事务

Simultaneous Changes开放式并发控制 下表介绍 LINQ to SQL 文档中涉及开放式并发的术语: 术语 说明 并发 两个或更多用户同时尝试更新同一数据库行的情形. 并发冲突 两个或更多用户同时尝试向一行的一列或多列提交冲突值的情形. 并发控制 用于解决并发冲突的技术. 开放式并发控制 先调查其他事务是否已更改了行中的值,再允许提交更改的技术.相比之下,保守式并发控制则是通过锁定记录来避免发生并发冲突.之所以称作开放式控制,是因为它将一个事务干扰另一事务视为不太可能发生. 冲

Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)

导言 Silverlight 2支持JSON.Web Service.WCF以及Sockets等新特性对数据CRUD操作,这个系列用实例结合数据库一步一步的图文描述来学习一下Silverlight 2 beta 1中进行数据库的CRUD操作方面的实战能力. 这篇文章介绍如何在Silverlight 2 beta 1中使用LINQ to SQL进行数据CRUD操作.我把这个实例大致分为3层. 这里多说几句:微软发布的是Silverlight 2 beta1 并不是Silverlight 2.0,也