LINQ TO SQL技术

LINQ TO SQL技术

 

linq to sql技术使用方便,不会被淘汰原因:第一,考虑到 兼容性问题,微软绝对不会把Linq to SQL从.NET Framework中拿掉的,所以你不用怕现在用 Linq to SQL写的程序以后不能运行了。第二,即使微软不更新Linq to SQL了,但它现在的功 能,已经足够满足我们日常需要了,相比重量级的Entity Framework,如果你只是做一个中小 型项目,并且很注重开发效率和学习曲线,所以选择可爱的Linq to SQL是最佳选择。下面让我来说说Linq to SQL的几大功能实现。

 

1、建立数据库

在使用Linq to SQL前,我们要将相应的数据库建好。在这个Demo中,使用的数据 库是SQLServer 2008。

我们首先建立一个叫的数据库MyDatabase,及两个数据表:MyTable1、MyTable2和MyTable3,分别表示 公告的分类和公告,建立方法不再赘述。至于两个表的具体字段请参看图1。

 

图一

2、建立Linq to SQL Classes文件

数据建好后,我们需要建立Linq to SQL Classes文件。这种文件是Linq to SQL框架的主要 文件,后面自动生成的实体类和ORM代码都存在于这个文件中。

我们打开VS2010,新建一个C# Class Labrary工程,名称为“浏览添加删除修改”,建好后在 工程上单击右键,选择“Add”->“New Item”,在文件类型中选择“Linq to SQL 类”,文件名命名为“DataClasses2.dbml”,如图2所示。

图二

3、新建数据库连接和修改数据库连接

以下图片为修改数据库连接,因为我在之前就已经把这个数据库给连接上了的,现在第二次进入则修改一下连接就可以,如果是新建的一个LINQ TO SQL的话,那么就得新建数据库连接了,要不我们所需要有的步骤一中MyTable1、2、3就不能够拉进来了。

图三

 

4、使用Linq to SQL访问数据库

我们首先新建一个工程。为了简单起见,我们就直接建立一个C# Console Application测试 我们的ORM吧。将这个工程命名为 浏览添加删除修改。当然,建好工程后,不要忘了添加对工 程“浏览添加删除修改”的引用,还要添加对“System.Data.Linq”命名空间的引用。

    4.0头文件引用代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 using System.Data.Linq;
10 using System.Data.SqlClient;

    4.1添加功能

 1 
 1  DataClasses1DataContext db = new DataClasses1DataContext();       
 2             MyTable2 t = new MyTable2();
 3             t.学号 = textBox1.Text.Trim().ToString();
 4             t.姓名 = textBox2.Text.Trim().ToString();
 5            
 6             //string 性别 = textBox3.Text.Trim().ToString();
 7             //string 出生日期 = Convert.ToDateTime(dt).ToString("yyyyMMdd"); 
 8             //t.出生日期 =textBox4.Text.Trim().ToString();
 9             //t.性别 = textBox3.Text.Trim().ToString();
10             t.学院编码 = textBox5.Text.Trim().ToString();
11             t.成绩 = Convert.ToInt32(textBox6.Text.Trim());
12             db.MyTable2.InsertOnSubmit(t);
13             db.SubmitChanges();
14             //Contacts c1 = new Contacts();
15 
16             //c1.ContactName = txtNewContactName.Text;
17 
18             //c1.State = txtNewState.Text;
19             //ltemp.Add(c1);
20             ////dc.Contacts.InsertOnSubmit(c1);
21             //dc.SubmitChanges();
  4.2预览功能
1 DataClasses1DataContext context = new DataClasses1DataContext();
2             var myQuery1 =
3                 from table2 in context.MyTable2
4                 select new { 学号 = table2.学号, 学生姓名 = table2.姓名, 性别 = table2.性别.ToString(), 出生年月日 = table2.出生日期.ToString(), 学校编号 = table2.学院编码.ToString(), 成绩 = table2.成绩 };
5             if (myQuery1.Count() > 0)
6             {
7                 dataGridView1.DataSource = myQuery1;
8             }

   4.3修改功能

 1 DataClasses1DataContext db = new DataClasses1DataContext();
 2             var query = from table in db.MyTable2
 3                         where table.学号 == textBox1.Text.Trim().ToString()
 4                         select table;
 5             if (query.Count() > 0)
 6             {
 7                 var q1 = query.First();
 8                 q1.学号 = textBox1.Text.Trim().ToString();
 9                 q1.姓名 = textBox2.Text.Trim().ToString();
10                 //q1.性别 = textBox3.Text.Trim().ToString();
11                 //string 出生日期 = Convert.ToDateTime(dt).ToString("yyyyMMdd"); 
12                 q1.学院编码 = textBox5.Text.Trim().ToString();
13                 q1.成绩 = Convert.ToInt32(textBox6.Text.Trim());
14                 db.SubmitChanges();
15             }

    4.4删除功能

 1 DataClasses1DataContext db = new DataClasses1DataContext();
 2             var query = from table in db.MyTable2
 3                         where table.学号 == textBox1.Text.Trim().ToString()
 4                         select table;
 5             if (query.Count() > 0)
 6             { 
 7                 var q1 = query.First();
 8                 db.MyTable2.DeleteOnSubmit(q1);
 9                 db.SubmitChanges();
10             }

    4.5点击datagridView中一行显示其中数据在lable控件

 1 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
 2         {
 3          
 4             DataRow row;
 5             row = dt.Rows.Find(dataGridView1.CurrentRow.Cells[0].Value.ToString());
 6             textBox1.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[0].Index].Value.ToString();
 7             textBox2.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[1].Index].Value.ToString();
 8             //textBox3.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[2].Index].Value.ToString();
 9             //textBox4.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[3].Index].Value.ToString();
10             //textBox5.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[4].Index].Value.ToString();
11             textBox6.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[5].Index].Value.ToString();
12         }

 

 


 

 

posted @ 2013-09-29 17:28  吕坤  阅读(588)  评论(0编辑  收藏  举报