技术开发 频道

SQL Server 2008使用LINQ进行数据访问

任务 5 – 修改数据库当中的数据

在这个任务中,您将会进行数据的获取并查看如何处理数据。四个基本的数据操作是Create、Retrieve、Update和Delete,和起来被称为CRUD。您可以看到LINQ to SQL是如何简单并直观的实现CRUD操作的。这个任务显示了如何使用create和update操作。

创建一个新的方法ModifyData,它修改数据库中的数据。然后,从Main函数中对该方法进行调用:

static void Main(string[] args)
{
    ModifyData();
}

static void ModifyData()
{
    var db
= new NorthwindDataContext();  

    var newCustomer
= new Customer
    {
       CompanyName
= "AdventureWorks Cafe",
CustomerID
= "ADVCA"
    };

    Console.WriteLine(
"Number Created Before: {0}",
        db.Customers.Where( c
=> c.CustomerID == "ADVCA" ).Count());

    db.Customers.InsertOnSubmit(newCustomer);
    db.SubmitChanges();

    Console.WriteLine(
"Number Created After: {0}",
        db.Customers.Where( c
=> c.CustomerID == "ADVCA" ).Count());
}

点击Ctrl+F5 来构建和运行应用程序。  注意,在数据库更新后输出到屏幕上的数据是不同的。然后,点击任意键以结束应用程序。 

注意,在Add方法被调用后,将通过使用SubmitChanges方法,将变更提交到数据库。注意,一旦客户被插入后,它将由于主键唯一约束的问题,不能再被插入到数据库。因此,该程序只能运行一次。(或者,您可以修改插入的数据,再执行该程序。)

现在,将更新并修改数据库中的数据。添加下面的代码,它将为获取出来的第一个客户修改Contact name。

static void ModifyData()
{
    var db
= new NorthwindDataContext();  


    var existingCustomer
= db.Customers.First();

    Console.WriteLine(
"Number Updated Before: {0}",
        db.Customers.Where( c
=> c.ContactName == "New Contact" ).Count());
    
    existingCustomer.ContactName
= "New Contact";
    db.SubmitChanges();

    Console.WriteLine(
"Number Updated After: {0}",
        db.Customers.Where( c
=> c.ContactName == "New Contact" ).Count());

}


现在,点击Ctrl+F5 来构建和运行应用程序。注意,拥有 “New Contact” 名称的联系人的数据发生了变化。点击任意键以结束应用程序。

任务 6 – 调用存储过程

Using the designer, recall adding a stored procedure along with the tables.  In this task you call stored procedures. 
回忆一下,在前面的任务中我们曾经使用设计器添加了一个存储过程。在这个任务中,您将调用存储过程。

创建一个新的方法,来打印出Top Most Expensive Products存储过程的调用结果,该存储过程曾经使用设计器被添加到NorthwindDataContext当中。

static void InvokeSproc()
{
    var db
= new NorthwindDataContext();  
    
foreach (var r in db.Ten_Most_Expensive_Products())
        Console.WriteLine(r.TenMostExpensiveProducts
+ "\t" + r.UnitPrice);
}

现在,在Main 函数中调用这个方法:

static void Main(string[] args)
{
    InvokeSproc();
}

点击Ctrl+F5 来构建和运行应用程序。在查看输出结果后,点击任意键以结束应用程序。

当数据库不能通过动态的SQL语句访问时,您可以使用C# 3.0和LINQ来运行存储过程,访问数据库当中的数据。

 

0
相关文章