佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > asp.net使用LINQ to SQL連接數(shù)據(jù)庫(kù)及SQL操作語(yǔ)句用法分析

asp.net使用LINQ to SQL連接數(shù)據(jù)庫(kù)及SQL操作語(yǔ)句用法分析

熱門(mén)標(biāo)簽:服務(wù)器配置 硅谷的囚徒呼叫中心 蘋(píng)果 解決方案 電子圍欄 呼叫中心 地方門(mén)戶(hù)網(wǎng)站 智能手機(jī)

本文實(shí)例講述了asp.net使用LINQ to SQL連接數(shù)據(jù)庫(kù)及SQL操作語(yǔ)句用法。分享給大家供大家參考,具體如下:

LINQ簡(jiǎn)介

LINQ:語(yǔ)言集成查詢(xún)(Language INtegrated Query)是一組用于c#和Visual Basic語(yǔ)言的擴(kuò)展。它允許編寫(xiě)C#或者Visual Basic代碼以查詢(xún)數(shù)據(jù)庫(kù)相同的方式操作內(nèi)存數(shù)據(jù)。

LINQ是一門(mén)查詢(xún)語(yǔ)言,和SQL一樣,通過(guò)一些關(guān)鍵字的組合,實(shí)現(xiàn)最終的查詢(xún)。

LINQ的分類(lèi)

LINQ to Object
LINQ to XML
LINQ to SQL
LINQ to DataSet
LINQ to ADO.NET

命名空間為System.Linq;

LINQ查詢(xún)

語(yǔ)法:
from 臨時(shí)變量 in 集合對(duì)象或數(shù)據(jù)庫(kù)對(duì)象
  where 條件表達(dá)式
  [orderby條件]
  [group by 條件]
  select 臨時(shí)變量中被查詢(xún)的值

例:

from c in Student select c;

假設(shè)Student是一個(gè)數(shù)據(jù)庫(kù)表對(duì)應(yīng)的一個(gè)實(shí)體類(lèi)

則查詢(xún)語(yǔ)句為:

from c in Student select c; 
//整表查詢(xún)
from c in Student where c.name=="張三" select c;
//查詢(xún)姓名為張三的所有信息

其中C為臨時(shí)變量,可任意取。

查詢(xún)幾個(gè)字段

1、查詢(xún)student表中的幾個(gè)字段

復(fù)制代碼 代碼如下:
var query=from c in student  select new {c.number,c.name,c.age};

2、查詢(xún)student表中的幾個(gè)字段,并重新設(shè)定列名

復(fù)制代碼 代碼如下:
var query=from c in student select new {學(xué)號(hào)=c.number,姓名=c.name, 年領(lǐng)=c.age};

注意事項(xiàng)

linq查詢(xún)語(yǔ)句必須以from子句開(kāi)始,以select 子句結(jié)束。

Linq是在.NET Framework 3.5 中出現(xiàn)的技術(shù),所以在創(chuàng)建新項(xiàng)目的時(shí)候必須要選3.5或者更高版本,否則無(wú)法使用。

3、排序

var query=from c in student orderby c.age ascending select c;//升序
var query=from c in studeng orderby c.age descending select c;//降序

4、分組

復(fù)制代碼 代碼如下:
var  query=from c in student group c by c.sex into d select new {性別=c.age}; //d為新表,c.sex為分組字段

5、過(guò)濾重復(fù)記錄

var query=(from c in dc.student select new {c.place}).Distinct();//Distinct()的作用是過(guò)濾重復(fù)的記錄。
var query=(from c in dc.student select new {分布地區(qū)=c.place}).Distinct();

6、查詢(xún)行數(shù)

(1)查詢(xún)表的總行數(shù)

int count=student.count();

(2)查詢(xún)滿(mǎn)足條件的行數(shù)

int count=(from c in student where c.name=="王明" select c).count();

7、模糊查詢(xún)

from c in dc.Student where c.name.Contain("王") select c

查詢(xún)姓名中含有王字的所有學(xué)生

復(fù)制代碼 代碼如下:
var query=from c in dc.Student where c.number.Contain("2009") select c

查詢(xún)學(xué)號(hào)中含有2009字符的所有學(xué)生

查詢(xún)結(jié)果

LINQ的查詢(xún)結(jié)果有可能是一個(gè)對(duì)象,也有可能是一個(gè)數(shù)據(jù)集,可用var類(lèi)型進(jìn)行接收

如:

var query=from c in Student select c;

輸入結(jié)果可用foreach循環(huán)

如:

var query=from c in Student select c;
foreach( var x in query)
{ Response.Write(x.toString());}

常用函數(shù)

Count( ):計(jì)算查詢(xún)結(jié)果的行數(shù)
Distinct( ):對(duì)查詢(xún)結(jié)果的重復(fù)行進(jìn)行篩選
First( ):取得查詢(xún)結(jié)果的第一行
Last( ):取得查詢(xún)結(jié)果的最后一行
Take(n):取得查詢(xún)結(jié)果的前n行
Skip(n):略過(guò)前n行,從n+1行開(kāi)始取
Skip(m).Take(n):從m+1行開(kāi)始取后面的n行

8、更新操作

思路:先把需要更新的行查詢(xún)出來(lái),然后進(jìn)行更新。LINQ只需要寫(xiě)出查詢(xún)語(yǔ)句即可,不需要寫(xiě)更新語(yǔ)句!

例:將學(xué)生表中學(xué)號(hào)為00001的學(xué)生進(jìn)行更新

1、(from c in Stuent where c.id=="00001" select c).First();

在數(shù)據(jù)空間中顯示數(shù)據(jù)查詢(xún)結(jié)果:

前兩行是連接數(shù)據(jù)庫(kù),其中第一中,經(jīng)常用,可以放到最開(kāi)始,這樣就不必每次用到時(shí)都寫(xiě)了。

studentDataContext dc = new studentDataContext();
//注意:xxxDataContext需要與.dbml的文件名一致
var query=from c in dc.student select c;
GridView1.DataSource=query;
GridView1.DataBind();

更新操作

string num = TextBox2.Text.Trim(); //將要更新學(xué)號(hào)為多少的相關(guān)信息
string name = TextBox3.Text.Trim();//更新的姓名
int age = Convert.ToInt32(TextBox4.Text.Trim());//Int32整型 //更新的年齡
StudentDataContext dc=new StudentDataContext();
student stu=(from c in dc.student where c.number==num select c).First();//變量,選取第一行。where后根據(jù)主鍵來(lái)更新,其他字段不能。即通過(guò)獲取主鍵后,來(lái)更新其他字段。
//除過(guò)主鍵不修改外,其他字段都可以修改
stu.name = name;//將新修改的名字賦值給數(shù)據(jù)庫(kù)中的字段名name
stu.age = age;//修改年齡
dc.SubmitChanges();//真正的用于修改數(shù)據(jù)庫(kù)。
bind();//一更改,就顯示,和及時(shí)刷新相同。

private void bind()
{
studentDataContext dc = new studentDataContext();
 var query = (from c in dc.student select c); //全表查詢(xún)
 GridView1.DataSource = query;
 GridView1.DataBind();
}

9、插入操作

//插入
string num = TextBox1.Text.Trim();
string username = TextBox2.Text.Trim();
string sex = TextBox3.Text.Trim();
string place = TextBox4.Text.Trim();
int age = Convert.ToInt32(TextBox5.Text.Trim());
student stu = new student();//創(chuàng)建對(duì)象
//賦新值
//主鍵不能重復(fù)
stu.number = num;
stu.name = username;
stu.sex = sex;
stu.place = place;
stu.age = age;
dc.student.InsertOnSubmit(stu);
//對(duì)表studen表進(jìn)行插入操作。
//注意,該函數(shù)必須寫(xiě)正確。
dc.SubmitChanges();//數(shù)據(jù)庫(kù)保存
bind();//內(nèi)容和上面的相同

10、數(shù)據(jù)刪除

string num = TextBox6.Text.Trim();
student stu =(from c in dc.student where c.number == num select c).First();
dc.student.DeleteOnSubmit(stu);
//刪除數(shù)據(jù)庫(kù)中的字段,具體怎樣刪除不管,只管調(diào)用該函數(shù)即可。
dc.SubmitChanges();
bind();

更多關(guān)于asp.net相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《asp.net字符串操作技巧匯總》、《asp.net操作XML技巧總結(jié)》、《asp.net文件操作技巧匯總》、《asp.net ajax技巧總結(jié)專(zhuān)題》及《asp.net緩存操作技巧總結(jié)》。

希望本文所述對(duì)大家asp.net程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
  • asp.net連接查詢(xún)SQL數(shù)據(jù)庫(kù)并把結(jié)果顯示在網(wǎng)頁(yè)上(2種方法)
  • IIS中ASP.NET連接SQL Server出錯(cuò)的解決方法
  • asp.net 數(shù)據(jù)庫(kù)連接類(lèi)代碼(SQL)
  • Asp.net 連接MySQL的實(shí)現(xiàn)代碼[]
  • ASP.NET2.0 SQL Server數(shù)據(jù)庫(kù)連接詳解
  • ASP.net如何連接SQL SERVER 2012數(shù)據(jù)庫(kù)

標(biāo)簽:呂梁 玉林 佳木斯 德宏 房產(chǎn) 喀什 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net使用LINQ to SQL連接數(shù)據(jù)庫(kù)及SQL操作語(yǔ)句用法分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    万全县| 如皋市| 阜宁县| 区。| 江孜县| 嘉义市| 苍溪县| 张家界市| 抚远县| 尖扎县| 沙坪坝区| 惠安县| 应用必备| 阳山县| 山阴县| 溆浦县| 万载县| 安康市| 辽宁省| 江安县| 喀喇沁旗| 上蔡县| 武功县| 印江| 科技| 中宁县| 称多县| 宣威市| 玉山县| 寿宁县| 介休市| 和林格尔县| 隆昌县| 武平县| 思茅市| 阳江市| 综艺| 泗水县| 喀什市| 襄垣县| 陆丰市|