您的位置:首页 > 数据库

LINQ TO SQL技术

2013-09-29 17:28 225 查看
LINQTOSQL技术

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

1、建立数据库

在使用LinqtoSQL前,我们要将相应的数据库建好。在这个Demo中,使用的数据库是SQLServer2008。

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



图一

2、建立LinqtoSQLClasses文件

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

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



图二

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

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



图三

4、使用LinqtoSQL访问数据库

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

4.0头文件引用代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.Linq;
usingSystem.Data.SqlClient;


4.1添加功能



DataClasses1DataContextdb=newDataClasses1DataContext();
MyTable2t=newMyTable2();
t.学号=textBox1.Text.Trim().ToString();
t.姓名=textBox2.Text.Trim().ToString();

//string性别=textBox3.Text.Trim().ToString();
//string出生日期=Convert.ToDateTime(dt).ToString("yyyyMMdd");
//t.出生日期=textBox4.Text.Trim().ToString();
//t.性别=textBox3.Text.Trim().ToString();
t.学院编码=textBox5.Text.Trim().ToString();
t.成绩=Convert.ToInt32(textBox6.Text.Trim());
db.MyTable2.InsertOnSubmit(t);
db.SubmitChanges();
//Contactsc1=newContacts();

//c1.ContactName=txtNewContactName.Text;

//c1.State=txtNewState.Text;
//ltemp.Add(c1);
////dc.Contacts.InsertOnSubmit(c1);
//dc.SubmitChanges();


4.2预览功能


DataClasses1DataContextcontext=newDataClasses1DataContext();
varmyQuery1=
fromtable2incontext.MyTable2
selectnew{学号=table2.学号,学生姓名=table2.姓名,性别=table2.性别.ToString(),出生年月日=table2.出生日期.ToString(),学校编号=table2.学院编码.ToString(),成绩=table2.成绩};
if(myQuery1.Count()>0)
{
dataGridView1.DataSource=myQuery1;
}


4.3修改功能

DataClasses1DataContextdb=newDataClasses1DataContext();
varquery=fromtableindb.MyTable2
wheretable.学号==textBox1.Text.Trim().ToString()
selecttable;
if(query.Count()>0)
{
varq1=query.First();
q1.学号=textBox1.Text.Trim().ToString();
q1.姓名=textBox2.Text.Trim().ToString();
//q1.性别=textBox3.Text.Trim().ToString();
//string出生日期=Convert.ToDateTime(dt).ToString("yyyyMMdd");
q1.学院编码=textBox5.Text.Trim().ToString();
q1.成绩=Convert.ToInt32(textBox6.Text.Trim());
db.SubmitChanges();
}


4.4删除功能

DataClasses1DataContextdb=newDataClasses1DataContext();
varquery=fromtableindb.MyTable2
wheretable.学号==textBox1.Text.Trim().ToString()
selecttable;
if(query.Count()>0)
{
varq1=query.First();
db.MyTable2.DeleteOnSubmit(q1);
db.SubmitChanges();
}


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

privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse)
{

DataRowrow;
row=dt.Rows.Find(dataGridView1.CurrentRow.Cells[0].Value.ToString());
textBox1.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[0].Index].Value.ToString();
textBox2.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[1].Index].Value.ToString();
//textBox3.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[2].Index].Value.ToString();
//textBox4.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[3].Index].Value.ToString();
//textBox5.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[4].Index].Value.ToString();
textBox6.Text=this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[5].Index].Value.ToString();
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: