linq学习笔记(1) -- 面向对象的查询,删除,更新,新增记录

即将开始一个新项目开发,使用VS2008 + Sql Server 2005开发,可能要引入linq,打算从今天开始学习linq,应该还不算晚~
之前一直在VS2005下面做开发,对于园子里的linq学习潮有关注,但是感觉手头没有项目实践,所以只是看没有去实践。
园子里面webabcd步步为营VS 2008 + .NET 3.5系列文章索引 感觉不错,俺打算吸收了,根据自己的体会转成自己的开发经验,以便项目开发过程中作为开发笔记备查。
开门见山,首先是Linq的面向对象的查询
1)新建一个网站/Web Application(大废话)
2)在网站内添加一个LINQ to SQL 类,名称为Northwind.dbml,打开服务器资源管理器,展开Northwind数据库,将表Customers拖入到Northwind.dbml,然后保存。
3)在Default.aspx里面添加一个GridView数据控件,名称为gvSelLinQ,在页面后台类文件写入GirdView的数据绑定,关键代码如下:


 1private void BindGrid()
 2        {
 3            NorthwindDataContext northwind = new NorthwindDataContext();
 4            
 5            //如果你喜欢类似Sql语句那种写法,可以象注释这样写
 6            //var c = from t in northwind.Customers
 7            //        where t.Country == "USA"
 8            //        select t;     
 9            
10            var c = northwind.Customers.Where(t => t.Country == "USA").ToList<Customers>();
11
12            gvSelLinQ.DataSource = c;
13            gvSelLinQ.DataBind();
14        }

这样,查询初级版本就这么完了~嗯嗯

接下来是删除了,沿用刚才那个网站和dbml文件
1)沿用刚才的Default.aspx,在页面上添加一个名为
drpCustomerID的Dropdownlist下拉控件,一个名称为btnDelete的Button按钮控件,在后台页面写入方法分别为下拉控件绑定数据,Button控件提供Click事件响应。
drpCustomerID控件的数据绑定方法如下:  

 1private void BindDDL()
 2        {
 3            NorthwindDataContext northwind = new NorthwindDataContext();
 4            //如果你喜欢类似Sql语句那种写法可以如注释代码,自己写查询语句
 5            //var c = from t in northwind.Customers                   
 6            //        select t.CustomerID;

 7            var c = northwind.Customers.Select(t => t.CustomerID);
 8            drpCustomerID.DataSource = c;
 9            drpCustomerID.DataBind();
10        }

btnDelete
控件的Click事件的方法如下:

 1protected void btnDelete_Click(object sender, EventArgs e)
 2        {
 3            string customerID = string.Empty;
 4            //获取要删除的CustomerID
 5            customerID = drpCustomerID.SelectedValue.ToString().Trim();
 6            //实例化NorthwindDataContext
 7            NorthwindDataContext northwind = new NorthwindDataContext();
 8
 9            //使用Single查询操作符获取指定的Customers对象
10            Customers customer = northwind.Customers.Single(p => p.CustomerID == customerID);
11
12            //使用DeleteOnSubmit()方法删除NorthwindDataContext对象的Customers集合中的指定Customer对象
13            northwind.Customers.DeleteOnSubmit(customer);
14            
15            //提交此次操作,生成并执行SQL命令
16            northwind.SubmitChanges();
17
18            //重新绑定DropDownList和GridView
19            BindDDL();
20            BindGrid();              //GridViewd的数据绑定就是上文提到的方法
21        }

第三步是更新了,沿用刚才那个网站和dbml文件
1)沿用刚才的Default.aspx,在页面上添加一个名为txtAddress的TextBox输入控件,一个名称为btnUpdate的Button按钮控件,在后台页面写入方法为Button控件提供Click事件响应。

 1protected void btnUpdate_Click(object sender, EventArgs e)
 2        {
 3            string customerID = string.Empty, address = string.Empty;
 4            
 5            //获取更新的内容
 6            customerID = drpCustomerID.SelectedValue.ToString().Trim();
 7            address = txtAddress.Text.Trim();
 8
 9            //实例化NorthwindDataContext
10            NorthwindDataContext northwind = new NorthwindDataContext();
11
12            //获取Customers实体集中准备更新的那项实体
13            Customers customer = northwind.Customers.Single(p => p.CustomerID == customerID);
14
15            //为更新字段进行赋值
16            customer.Address = address; 
17
18            //提交更新操作
19            northwind.SubmitChanges();
20
21            //重新绑定DropDownList和GridView
22            BindDDL();
23            BindGrid();
24        }

第四步是新增,依然沿用刚才那个网站和dbml文件
1)沿用刚才的Default.aspx,在页面上使用原有的名为名为txtAddress的TextBox输入控件,再添加两个TextBox输入控件,名称分别是txtCustomerIDtxtCompanyName,然后再添加一个Button按钮控件,名称是btnAdd,在后台页面写入方法为Button控件提供Click事件响应。

 1protected void btnAdd_Click(object sender, EventArgs e)
 2        {
 3            string customerID = string.Empty, address = string.Empty, companyName = string.Empty;
 4            //获取新增数据信息
 5            customerID = txtCustomerID.Text.Trim();
 6            companyName = txtCompanyName.Text.Trim();
 7            address = txtAddress.Text.Trim();
 8
 9            //实例化NorthwindDataContext
10            NorthwindDataContext northwind = new NorthwindDataContext();
11            
12            //实例化Customers
13            Customers customer = new Customers();
14            
15            //字段赋值
16            customer.CustomerID = customerID;
17            customer.CompanyName = companyName;
18            customer.Address = address;
19
20            //使用InsertOnSubmit()方法新增NorthwindDataContext对象的Customers集合中的指定Customer对象 
21            northwind.Customers.InsertOnSubmit(customer);
22
23            //提交当前操作
24            northwind.SubmitChanges();
25
26            //重新绑定GridView
27            BindGrid();
28        }

好的,现在使用Linq完成面向对象的查询,删除,更新,新增四步全部完成,Linq入门初级第一步完成~
posted @ 2008-10-14 16:18  KiNg.JiOnG  阅读(409)  评论(0编辑  收藏  举报
查看博客访问人数(点击):