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控件,使用下面的代码进行绑定数据:

 

代码
           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;

 

添加数据

代码
            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();

 

 

删除数据

 

代码
            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();

 

 

  当选择listbox的项时,数据显示在右侧的文本框中。

 

代码
 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();

 

 

posted @ 2010-08-31 11:39  Jasmines  阅读(296)  评论(0编辑  收藏  举报