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头文件引用代码如下:
4.1添加功能
4.3修改功能
4.4删除功能
4.5点击datagridView中一行显示其中数据在lable控件
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();
}
相关文章推荐
- 一起谈.NET技术,LINQ to SQL快速上手 step by step
- 一起谈.NET技术,使用LINQ to SQL更新数据库(中):几种解决方案
- 一起谈.NET技术,【译】ASP.NET MVC并不仅仅只是Linq to SQL
- Linq to SQL 技术贴汇总
- 一起谈.NET技术,使用LINQ to SQL更新数据库(上):问题重重
- 一起谈.NET技术,Linq To SQL 批量更新方法汇总
- Linq技术一:Linq to SQL和Devart Linq to SQL Model
- Linq的技术太强大了分享一下(linq to sql 的插入、更新、查询、删除)
- linq to sql 分页技术
- Linq TO Sql 使用反射技术更新数据库
- [技术][.NET]<<一步一步学Linq to sql>> -- Joney Liu博客园整理
- LINQ to Entities 实现sql 关键字"In"方式总结
- 关于在Webservice里使用LinqToSQL遇到一对多关系的父子表中子表需要ToList输出泛型而产生循环引用错误的解决办法!(转)
- C# linq to sql
- 详解LINQ to SQL分页问题 不同版本对比
- LINQ To SQL 鉴别器列(Discriminator Column)示例 -- 继承映射指南(翻的老贴子)
- linq to sql 增删改查
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
- 一步一步学Linq to sql(十):分层构架的例子
- LINQ to SQL 用于数据库连接的DataContext对象成员