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
//把表拖进去