基本的linq to sql的操作。只涉及到一个表的操作哦。使用 vs2008 beta2标准版和sqlserver2000
如果对linq没有一点知识的话先看其他文章啊。这里不讲的
这里使用sqlserver2000中的数据库Northwind中的Region表。
首先定义一个和数据库表关联的实体类;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
using System.Data.Linq.Mapping;//要手动添加dll引用的啊。有点奇怪
namespace LINQTest2.EntityClass
{
[Table(Name="Region")]//表名
public class Region
{
[Column(IsPrimaryKey=true)]//是否是主键
public int RegionID;
[Column]
public string RegionDescription;//和数据库表中对应的列。都要加[Column]特性。
}
}
读取:
每步操作都要涉及这个东西
DataContext dc = new DataContext(System.Configuration.ConfigurationSettings.AppSettings["DB"].ToString());//参数就是数据库链接字符串,得到数据库的上下文环境
Table<LINQTest2.EntityClass.Region> tabRegion = dc.GetTable<LINQTest2.EntityClass.Region>();//用到泛型的知识了。看看就知道了。就是得到Region表的实体类集合。
然后
var result = from reg in tabRegion
select reg;//这就是创建查询的步骤;
执行查询。显示在listbox中
foreach(var item in result)
{
this.listBox1.Items.Add(item.RegionID.ToString()+" : " +item.RegionDescription );
}
这就完成读取操作了
添加操作:
前两步同样,copy一下就好了
LINQTest2.EntityClass.Region reg = new LINQTest2.EntityClass.Region();//实例华一个类。并且赋值
reg.RegionID = int.Parse(this.textBox1.Text.Trim());
reg.RegionDescription = this.textBox2.Text.Trim();
tabRegion.Add(reg);//然后实体类集合添加这个新定义的类。就吧这个新记录添加到数据表中了
dc.SubmitChanges();//调用这个方法才执行的啊。
//你要理解这里的实体类对应的是数据表的一行。
删除操作:
钱两步一样。、
效果是这样的你输入一个主键。然后根据主键删除这条记录
var result = from temp in tabRegion
where temp.RegionID == int.Parse(this.textBox3.Text.Trim())//这个地方得到输入的主键
select temp;//返回得到的实体类集合,这还是创建查询步骤饿
然后执行查询
foreach (var item in result)
{
tabRegion.Remove(item);//删除这个记录
}
dc.SubmitChanges();
更新数据:
前两步一样。效果也是输入一个主键。然后根据主键修改这个Region表的描述那个字段
var result = from temp in tabRegion
where temp.RegionID == int.Parse(this.textBox3.Text.Trim())//得到主键
select temp;
执行查询
foreach (var item in result)
{
item.RegionDescription = this.textBox4.Text.Trim();//新的内容
}
dc.SubmitChanges();//调用方法
就这么简单。然后在看看怎么一对多等的外键操作
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。