• 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());
                }
            }
        }
    }

    执行结果如下:

  • 相关阅读:
    [硬件]_ELVE_VS2015下opencv3.3的配置问题
    [Linux]_ELVE_ssh登录远程阿里服务器
    [python]_ELVE_pip2和pip3如何共存
    U盘无法打开提示格式化?如何进行恢复
    [转]pycharm的一些快捷键
    文件上传Django
    ansible编译安装--操作系统环境Redhat6.4
    django的models字段介绍
    paramiko模块
    mysql安装等操作
  • 原文地址:https://www.cnblogs.com/ryuasuka/p/2974553.html
Copyright © 2020-2023  润新知