Linq to sql(二):DataContext与实体
一. DataContext
DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。
DataContext提供了以下一些使用的功能:
l 以日志形式记录DataContext生成的SQL
l 执行SQL(包括查询和更新语句)
l 创建和删除数据库
DataContext是实体和数据库之间的桥梁,那么首先我们需要定义映射到数据表的实体。
二. 定义实体类
(1) 新建项目 LinqTest
添加新建项--》数据---》Linq To Sql类 定义名称为Test.dbml
(2) 在服务器资源管理器上建立新的数据库连接。
(3) 将所需要的数据表拖到Test.dbml页面中。
(5) 新建一个简单的Form
(4) 在页面中首先定义一个全局的实体类变量
private LinqTest.TestDataContext TestData = new TestDataContext();
现在,创建一个ASP.NET页面,然后在页面上加入一个DataGridView,listBox控件,使用下面的代码进行绑定数据:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
var list = (from items in TestData.User_Table select items).OrderBy(item => item.UserID);
//var list = (from items in TestData.User_Table select new {用户ID=items.UserID,用户Name=items.UserName,用户 PWd=items.UserPwd });//------绑定DataGridView字段显示重写
this.listBox1.Items.Clear();
foreach (LinqTest.User_Table ut in list)
{
listBox1.Items.Add(ut.UserName);
}
this.dataGridView1.DataSource = list;
//var list = (from items in TestData.User_Table select new {用户ID=items.UserID,用户Name=items.UserName,用户 PWd=items.UserPwd });//------绑定DataGridView字段显示重写
this.listBox1.Items.Clear();
foreach (LinqTest.User_Table ut in list)
{
listBox1.Items.Add(ut.UserName);
}
this.dataGridView1.DataSource = list;
添加数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
LinqTest.User_Table ut = new User_Table();
ut.UserID = txtID.Text;
ut.UserName = txtName.Text;
ut.UserPwd = txtPwd.Text;
ut.RoleID = int.Parse(txtRoleID.Text.ToString());
TestData.User_Table.InsertOnSubmit(ut);
TestData.SubmitChanges();
BindToData();
ut.UserID = txtID.Text;
ut.UserName = txtName.Text;
ut.UserPwd = txtPwd.Text;
ut.RoleID = int.Parse(txtRoleID.Text.ToString());
TestData.User_Table.InsertOnSubmit(ut);
TestData.SubmitChanges();
BindToData();
删除数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
LinqTest.User_Table ut = (from items in TestData.User_Table where items.UserName == this.listBox1.SelectedItem.ToString() select items).First();
TestData.User_Table.DeleteOnSubmit(ut);
TestData.SubmitChanges();
BindToData();
TestData.User_Table.DeleteOnSubmit(ut);
TestData.SubmitChanges();
BindToData();
当选择listbox的项时,数据显示在右侧的文本框中。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
LinqTest.User_Table ut = (from items in TestData.User_Table where items.UserName == this.listBox1.SelectedItem.ToString() select items).First();
this.txtID.Text = ut.UserID;
this.txtName.Text = ut.UserName;
this.txtPwd.Text = ut.UserPwd;
this.txtRoleID.Text = ut.RoleID.ToString();
this.txtID.Text = ut.UserID;
this.txtName.Text = ut.UserName;
this.txtPwd.Text = ut.UserPwd;
this.txtRoleID.Text = ut.RoleID.ToString();