zoukankan      html  css  js  c++  java
  • LINQ简易教程

    LINQ,全称是Language Intergrated Query的缩写,即“集成语言查询”,利用LINQ可以使数据库的表像类一样使用,简单方便。

    下面来用很短的篇幅简单地介绍一下LINQ的使用方法。

    准备工作:在SQL SERVER数据库中建立相应的表

    这个是一个准备工作,也可以使用ACCESS,Oracle等其他数据库,这里采用SQL SERVER是因为和微软的.NET平台有最好的契合度。

    本文使用的是以前建好的练习用数据库。

    在Visual Studio中新建C#工程(任意)

    不论是控制台,Winform,还是ASP,都支持LINQ,这里我们以控制台程序为例。

    先建立一个控制台程序工程。

    单击菜单栏中“视图”,选择“服务器资源管理器”,打开“服务器资源管理器”窗口。

     

    在“数据连接”选项上点右键,在弹出的菜单中选择“添加连接”,打开“选择数据源”对话框。

     

    在打开的对话框中选择“Microsoft SQL Server”,点击“继续”。

     

    在下一个对话框中填入服务器名称(本机的话填写localhost即可),选择“Windows账户登录”或者“SQL Server用户登录”,再选择要连接的数据库。单击“确定”。

     

    完成后看到右边的“服务器资源管理器”窗口,我们添加的数据库就在这里。

     

    在“解决资源管理器”中右击工程名,在弹出的菜单中选择“添加”--->“添加新项”,在打开的对话框中选择“LINQ to SQL类”,文件名任意,当然要符合命名规则。

     

    添加完后的界面如下

     

    这个时候就可以把你添加的数据库里的表都添加进来,添加进来后所有的要素都会在这里面出现,包括主键、外键等等

     

    打开DataClasses1.Designer.cs文件,看看是不是所有的表都变成了C#类。

     

    现在我们已经有了LINQ类,那么我们就可以像使用其他类一样去使用它们。

    回到Program.cs文件,在Main方法中输入下列示例代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace LinqTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建一个DataClass对象,就是在DataClass1.dbml里声明的
               DataClasses1DataContext da = new DataClasses1DataContext();
                
                try
                {
              //这里的LINQ查询语句和SQL里有一点点差别,具体的可以上网搜索
                    var query = from s in da.sale_item
                                where s.unit_price > 2000
                                select s;
    
                    Console.WriteLine();
                    Console.WriteLine("查询结果");
    
                    //查询语句返回的是一个集合,如果要查看里面的内容,必须要用foreach来循环.
                    foreach (sale_item s in query)
                    {
                        Console.WriteLine(s.order_no + " " + s.prod_no + " " + s.qty + " " + s.unit_price);
                    }
                    //以上是查询语句及结果
    
                    //向数据库插入数据
                    customer cus = new customer();
                    cus.cust_no = "C1111";
                    cus.cust_name = "ABCDEFG";
                    cus.tel_no = "12345678";
                    cus.zip = "100000";
                    cus.addr = "ABCDEFG";
                    //这两句话有点像以前学过的事务,只有在添加完成之后才会写入数据库
                    da.customer.InsertOnSubmit(cus);
                    da.SubmitChanges();
    
                    Console.WriteLine();
                    Console.WriteLine("插入数据后的执行结果");
    
                    var query2 = from c in da.customer select c;
                    foreach (customer c in query2)
                    {
                        Console.WriteLine(c.cust_no + " " + c.cust_name + " " + c.addr + " " + c.tel_no + " " + c.zip);
                    }
    
                    //修改数据库的数据
                    var result = from c in da.customer where c.cust_no == "C1111" select c;
                    foreach (customer c in result)
                    {
                        c.cust_name = "GFEDCBA";
                        c.tel_no = "87654321";
                        cus.zip = "999999";
                        cus.addr = "GFEDCBA";
                    }
                    da.SubmitChanges();
    
                    Console.WriteLine();
                    Console.WriteLine("修改数据后的执行结果");
    
                    query2 = from c in da.customer select c;
                    foreach (customer c in query2)
                    {
                        Console.WriteLine(c.cust_no + " " + c.cust_name + " " + c.addr + " " + c.tel_no + " " + c.zip);
                    }
    
                    //删除数据
                    var result2 = from c in da.customer
                                  where c.cust_no == "C1111"
                                  select c;
                    foreach (customer c in result2)
                    {
                        da.customer.DeleteOnSubmit(c);
                    }
                    da.SubmitChanges();
    
                    Console.WriteLine();
                    Console.WriteLine("删除数据后的执行结果");
    
                    query2 = from c in da.customer select c;
                    foreach (customer c in query2)
                    {
                        Console.WriteLine(c.cust_no + " " + c.cust_name + " " + c.addr + " " + c.tel_no + " " + c.zip);
                    }
    
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
        }
    }

    执行结果如下:

  • 相关阅读:
    Delphi XE4 FireMonkey 开发 IOS APP 发布到 AppStore 最后一步.
    Native iOS Control Delphi XE4
    Delphi XE4 iAD Framework 支持.
    using IOS API with Delphi XE4
    GoF23种设计模式之行为型模式之命令模式
    Android青翼蝠王之ContentProvider
    Android白眉鹰王之BroadcastReceiver
    Android倚天剑之Notification之亮剑IOS
    Android紫衫龙王之Activity
    GoF23种设计模式之行为型模式之访问者模式
  • 原文地址:https://www.cnblogs.com/ryuasuka/p/2974553.html
Copyright © 2011-2022 走看看