C# LINQ

LINQ(Language INtegrated Query)

在这里插入图片描述
LINQ(Language Integrated Qyery) ,即语言集成查询,提供一个统一的编程概念和语法,对关系数据库、XML数据、远程的对象都采用同样的访问方式。
LINQ包括
LINQ到对象:操作内存
LINQ到SQL:操作数据库
LINQ到XML:操作XML数据。

C# 窗体 创建方式
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
网页格式为aspx

Default.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default:System.Web.UI.Page
{
	protected void Page_Load(Object sender,EventArgs e)
	{
		string[] arr1={"one","two","three","four","five"};
		var result=
			from s in arr1
			select s;
		foreach(var o in result)
		{
			Response.Write(o);
			Response.Write("<br/>");
		}
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default:System.Web.UI.Page
{
	protected void Page_Load(Object sender,EventArgs e)
	{
		string[] arr1={"one","two","three","four","five"};
        string[] arr2 = { "111", "222" };

		var result=
			from s in arr1
            group s by s[0] into ww
            where ww.Count()>=2
            select ww;

		foreach(var o in result)
		{
			Response.Write(o.Key+" "+o.Count());
			Response.Write("<br/>");
		}
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(Object sender, EventArgs e)
    {
        string[] arr1 = { "one", "two", "three", "four", "five" };
        string[] arr2 = { "111", "222" };

        var result =
            from s in arr2
            where s[0].CompareTo('0') >= 0 && s[0].CompareTo('9') <= 0
            //where s[0] >= '0' && s[0] <= '9'
            select s;

        foreach (string o in result)
        {
            Response.Write(o);
            Response.Write("<br/>");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default:System.Web.UI.Page
{
	protected void Page_Load(Object sender,EventArgs e)
	{
		string[] arr1={"one","two","three","four","five"};
        string[] arr2 = { "1", "2","3","4","2","3" };

        var result =
            from s in arr2
           // where s[0].CompareTo('0') >= 0 && s[0].CompareTo('9') <= 0
            where s[0]>='0'&&s[0]<='9'
            select s;

		foreach(string o in arr2.Distinct())
		{
			Response.Write(o);
			Response.Write("<br/>");
		}
    }
}

对数据源去重复项

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default:System.Web.UI.Page
{
	protected void Page_Load(Object sender,EventArgs e)
	{
		string[] arr1={"one","two","three","four","five"};
        string[] arr2 = { "1", "2","3","4","2","3" };

        var result =
            from s in arr2.Distinct()
           // where s[0].CompareTo('0') >= 0 && s[0].CompareTo('9') <= 0
            where s[0]>='0'&&s[0]<='9'
            select s;

		foreach(string o in result)
		{
			Response.Write(o);
			Response.Write("<br/>");
		}
    }
}

数据表并不是原汁原味的面向对象
dataTable
entityFramework-EF实体对象集
DF,MF,CF
dataFramework
ModelFramework
CodeFramework
极大地浪费了程序员的时间
DF->MF->CF
代码优先
模型优先
数据优先

这三者创建任意一种剩下两种自动创建,而以往的编程还需要分别创建模型和数据

Linq是基于数据优先的操作

DataClassesDataContext数据类数据上下文

对前面内容的封装
不用管数据源、与数据库的具体交互

cs C# script C#脚本

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataClassesDataContext data=new DataClassesDataContext();//对数据库的查询

            var result=
                from s in data.Students
                where s.City="北京"//linq语句查询,相当方便


            GridView1.DataSourse = data.Students;
            GridView1.DataBind();
        }
    }
}//创建App_Data
//把数据库拖进去
//创建App_Code
//把表拖进去

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataClassesDataContext data=new DataClassesDataContext();//对数据库的查询

            var result=
                from s in data.Students
                where s.City="北京"//linq语句查询,相当方便


            GridView1.DataSourse = data.Students;
            GridView1.DataBind();
        }
    }
    protected void Button1_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        stu1.StuName = TextBox1.Text;
        data.Student.InsertOnSubmit(stu1);//只是修改内存数据
        data.SubmitChanges();//这才是真正的对数据库的操作

        GridView1.DataSourse = data.Student;
        GridView1.DataBind();
    }
    protected void Button2_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        var result =
            from s in data.Students
            select s;
        foreach 

        data.SubmitChanges();//这才是真正的对数据库的操作
        GridView1.DataSourse = data.Student;
        GridView1.DataBind();
    }
    protected void Button3_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        var result =
            from s in data.Students
            select s.StuName;//查询结果为一列

        DropDownList1.DataSourse = result.Distinct();
        DropDownList1.DataBind
    }
}//创建App_Data
//把数据库拖进去
//创建App_Code
//把表拖进去

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataClassesDataContext data=new DataClassesDataContext();//对数据库的查询

            var result=
                from s in data.Students
                where s.City="北京"//linq语句查询,相当方便


            GridView1.DataSourse = data.Students;
            GridView1.DataBind();
        }
    }
    protected void Button1_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        stu1.StuName = TextBox1.Text;
        data.Student.InsertOnSubmit(stu1);//只是修改内存数据
        data.SubmitChanges();//这才是真正的对数据库的操作

        GridView1.DataSourse = data.Student;
        GridView1.DataBind();
    }
    protected void Button2_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        var result =
            from s in data.Students
            select s;
        foreach 

        data.SubmitChanges();//这才是真正的对数据库的操作
        GridView1.DataSourse = data.Student;
        GridView1.DataBind();
    }
    protected void Button3_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        var result =
            from s in data.Students
            select new{id=s.ID,name=s.StuName};

        DropDownList1.DataSourse = result.Distinct();
        DropDownList1.DataBind();
    }
    protected void Button4_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        stu1.StuName = TextBox1.Text;
        data.Student.InsertOnSubmit(stu1);//只是修改内存数据
        data.SubmitChanges();//这才是真正的对数据库的操作

        GridView1.DataSourse = data.Students;
        GridView1.DataBind();
    }
    protected void Button5_Click(Object sender, EventArgs e)
    {
        DataClassesDataContext data = new DataClassesDataContext();

        GridView1.DataSourse = data.getStudentByCity("北京");//此时考虑所用City字段是否加入了aaa,否则可能运行不了
        GridView1.DataBind();
    }
}//创建App_Data
//把数据库拖进去
//创建App_Code
//把表拖进去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值