當前位置:首頁 » 操作系統 » linq資料庫

linq資料庫

發布時間: 2022-11-20 14:33:03

1. 如何在網站開發中使用LINQ操作資料庫

DBLinqTosqlDataContext Db = new DBLinqToSqlDataContext(); //實例化上下文
Error_Log LOG = new Error_Log();
Exception ee = new Exception();
LOG.Object = ee.Source;
LOG.TargetSite = ee.TargetSite.ToString();
LOG.MessAge = ee.Message;
LOG.Time = DateTime.Now;
Db.Error_Log.InsertOnSubmit(LOG); //插入
Db.SubmitChanges(); //提交 這里運行才能真正的插入資料庫
Response.Redirect("GeneralError.aspx");

2. 如何使用LINQ鏈接資料庫並操作資料庫

之前在遠標做過用java連接資料庫主要有兩種方式,一是用JDBC-ODBC橋來連接,二是用相關廠商提供的相應驅動程序來連接,首先談談第一種連接。

JDBC-ODBC橋接器是用JdbcOdbc.Class和一個用於訪問ODBC驅動程序的本地庫實現的。對於WINDOWS平台,該本地庫是一個動態連接庫DLL(JDBCODBC.DLL)。

由於JDBC在設計上與ODBC很接近。在內部,這個驅動程序把JDBC的方法映射到ODBC調用上,這樣,JDBC就可以和任何可用的ODBC驅動程序進行交互了。這種橋接器的優點是,它使JDBC目前有能力訪問幾乎所有的資料庫。通行方式如圖所示:

應用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC層---數據源

具體操作方法為:

首先打開控制面板的管理工具,打開數據源(ODBC),在用戶DSN裡面添加數據源(即你要連接的資料庫的名字),在這里假定連接SQL SERVER 2000的GoodsSupply資料庫。名稱填寫你要連接的資料庫的名稱(GoodsSupply),然後逐步設置,如果選用了使用SQL-SERVER密碼認證的話,就要輸入相應的用戶名及密碼連接到資料庫。一路下一步設置完成。

在JAVA裡面編寫程序進行測試,在這里我的程序是讓用戶輸入任意的表名與與列名,把該列的所有數據輸出。源代碼如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;

public class ODBCBridge {

public static void main(String[] args) {
String url="jdbc:odbc:GoodsSupply";
Statement sm=null;
String command=null;
ResultSet rs=null;
String tableName=null;
String cName=null;
String result=null;
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //載入驅動
}catch(ClassNotFoundException e){
System.out.println("Can not load Jdbc-Odbc Bridge Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000認證
DatabaseMetaData dmd=con.getMetaData(); //DMD為連接的相應情況
System.out.println("連接的資料庫:"+dmd.getURL());
System.out.println("驅動程序:"+dmd.getDriverName());
sm=con.createStatement();
System.out.println("輸入表名");
tableName=input.readLine();
while(true) {
System.out.println("輸入列名(為空時程序結束):");
cName=input.readLine();
if(cName.equalsIgnoreCase(""))
break;
command="select "+cName+" from "+tableName;
rs=sm.executeQuery(command); //執行查詢
if(!rs.next())
System.out.println("表名或列名輸入有誤");
else {
System.out.println("查詢結果為:");
do
{
result=rs.getString(cName);
//資料庫語言設置為中文,不用轉換編碼
//result=new String(result.getBytes("ISO-8859-1"),"GB2312");
System.out.println(result);
}while(rs.next());
}
}
}catch(SQLException ex) {
System.out.println("SQLException:");
while(ex!=null) {
System.out.println("Message:"+ex.getMessage());
ex=ex.getNextException();
}
}catch(Exception e) {
System.out.println("IOException");
}
}
}

3. linq如何設置連接資料庫的字元串

你用的是LinqToSql吧?在db = new NewDBDataContext(「指定的鏈接字元串」);這是使用有一個參數的構造函數,或者看無參的構造函數:
public NewDBDataContext() : base(global::NewGasgoo.AutoRepost.Properties.Settings.Default.DBConnectionString, mappingSource)
{
OnCreated();
}
看這個NewGasgoo.AutoRepost.Properties.Settings.Default.DBConnectionString的定義:
public string DBConnectionString {
get {
return ((string)(this["DBConnectionString8"]));
}
}
這個值就是Setting里的配置鏈接。
你可以將這個Return 修改為自己的配置,比如ConfigurationManager.AppSettings["DBString"],
也可以直接修改Setting配置。不過我比較推薦db = new NewDBDataContext(「指定的鏈接字元串」)。因為如果重新托表, return ((string)(this["DBConnectionString8"]));就會自動變的。

4. linq 是否的是默認有資料庫連接池

沒有,需要你手動設置。另外你應該說Linq to SQL ....
可以使用一組名稱-值對以鏈接字元串的形式配置鏈接池。例如,可以配置池是否有效(默認是有效的),池的最大、最小容量,用於打
開鏈接的排隊請求被阻斷的時間。下面的示例字元串配置了池的最大和最小容量。
"Server=(local); Integrated Security=SSPI; Database=Northwind;
Max Pool Size=75; Min Pool Size=5"摘要
連接池允許應用程序從連接池中獲得一個連接並使用這個連接,而不需要為每一個連接請求重新建立一個連接。一旦一個新的連接被創建
並且放置在連接池中,應用程序就可以重復使用這個連接而不必實施整個資料庫連接創建過程。
當應用程序請求一個連接時,連接池為該應用程序分配一個連接而不是重新建立一個連接;當應用程序使用完連接後,該連接被歸還給連接
池而不是直接釋放。
確保你每一次的連接使用相同的連接字元串(和連接池相同);只有連接字元串相同時連接池才會工作。如果連接字元串不相同,應用程序
就不會使用連接池而是創建一個新的連接。優點
使用連接池的最主要的優點是性能。創建一個新的資料庫連接所耗費的時間主要取決於網路的速度以及應用程序和資料庫伺服器的
(網路)距離,而且這個過程通常是一個很耗時的過程。而採用資料庫連接池後,資料庫連接請求可以直接通過連接池滿足而不需要為該請
求重新連接、認證到資料庫伺服器,這樣就節省了時間。缺點
資料庫連接池中可能存在著多個沒有被使用的連接一直連接著資料庫(這意味著資源的浪費)。技巧和提示
1. 當你需要資料庫連接時才去創建連接池,而不是提前建立。一旦你使用完連接立即關閉它,不要等到垃圾收集器來處理它。
2. 在關閉資料庫連接前確保關閉了所有用戶定義的事務。
3. 不要關閉資料庫中所有的連接,至少保證連接池中有一個連接可用。如果內存和其他資源是你必須首先考慮的問題,可以關閉所有的連
接,然後在下一個請求到來時創建連接池。連接池FAQ
當第一個連接請求到來時創建連接池;連接池的建立由資料庫連接的連接字元創來決定。每一個連接池都與一個不同的連接字元串相關。
當一個新的連接請求到來時如果連接字元串和連接池使用的字元串相同,就從連接池取出一個連接;如果不相同,就新建一個連接池。
當連接池中的所有連接都已經關閉時關閉連接池。
當連接池已經達到它的最大連接數目時,有新的連接請求到來時,新的連接請求將放置到連接隊列中。當有連接釋放給連接池時,連接池將
新釋放的連接分配給在隊列中排隊的連接請求。你可以調用close和dispose將連接歸還給連接池。
對於.NET應用程序而言,默認為允許連接池。(這意味著你可以不必為這件事情做任何的事情)當然,如果你可以在SQLConnection對象的連
接字元串中加進Pooling=true;確保你的應用程序允許連接池的使用。
ADO.NET默認為允許資料庫連接池,如果你希望禁止連接池,可以使用如下的方式:
1) 使用SQLConnection對象時,往連接字元串加入如下內容:Pooling=False;
2) 使用OLEDBConnection對象時,往連接字元串加入如下內容:OLE DB Services=-4;

5. 淺談LINQ如何插入刪除和更新資料庫記錄備注

)。但是,LINQ TO SQL不是萬能的。例如,你在重新修改或設計資料庫表格後,原先使用LINQ TO SQL生成的DATACONTEXT類並不會自動更新。因此,針對這些更改之後的操作,需要特別注意。二、問題描述[一]本文中首先記錄的是使用LINQ插入資料庫記錄時涉及的一個基本概念級問題。請看下面的代碼片斷:public bool InsertUserStatus(string UserName){eMailDataContext dt = new eMailDataContext();try{//刪除可能存在的原有用戶狀態信息 Table3 u = dt.Table3.First(m => m.abc == UserName); //if (dt.Table3.Count() != 0)//{// Table3 u = dt.Table3.First(m => m.abc == UserName); //if (u != null)//{dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges();//}//}//創建新的用戶狀態信息 Table3 userstatus = new Table3{abc = UserName};//插入到資料庫表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges();return true;}catch (System.InvalidOperationException){return false;//(2)}}上述代碼的意思是,在表格Table3 中先刪除可能存在的符合條件的記錄,然後在此表格中再插入一條記錄數據。上面的代碼將「可能」引發異常,將流程式控制制轉向(2)處。這些「可能」在於,數據表格Table3 中最初無記錄,則必引發異常;如果有記錄,則一切符合既定操作要求。於是,修改上面的代碼為如下:public bool InsertUserStatus(string UserName){eMailDataContext dt = new eMailDataContext();try{//刪除可能存在的原有用戶狀態信息 if (dt.Table3.Count() != 0)// (1){Table3 u = dt.Table3.First(m => m.abc == UserName); if (u != null){dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges();}}//創建新的用戶狀態信息 Table3 userstatus = new Table3{abc = UserName};//插入到資料庫表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges(); return true;}catch (System.InvalidOperationException){return false;}}也就是說,刪除操作前需要先判定數據表格是否記空--這可以通過紅色的if語句((1)處)來實現。如此以來,無論表格中是否事先存在記錄都可以往下執行可能的刪除及插入操作了。[二]再來看一個例子,例如: //刪除舊的郵件 public static void DeleteSubject(string UserName, string host){eMailDataContext dt = new eMailDataContext(); string cmdText = "delete from MailDownloadTemp where UserName=" + "'"+UserName +"'"+ " and Host=" + "'"+host+"'";try{int result = dt.ExecuteCommand(cmdText);return;}catch (System.InvalidOperationException){return;}}上述操作同樣拋出異常。因此,需要同上面提到的那樣,先進行資料庫表格記錄數據判斷,再進行可能的刪除操作。因此,再修改上面代碼,如下所示: //刪除舊的郵件

6. 什麼是LINQ它主要由哪些技術組成

語言集成查詢(Language Intergrated Query ,LINQ),LINQ是集成到c#語言中的一個面向對象的統一查詢模型,是一種獨立於數據源的查詢語言來訪問特定數據的解決方案。LINQ也是面向對象的,而且也可以擴展,在一定程度上使c#更接近於函數式編程,使開發人員的關注焦點從數據(狀態)的具體細節轉移到信息(對象)行為。並且它還為數據查詢提供了一個統一的模型,不再依賴於某種特定語言或技術的難以預測的變化。通過LINQ可以使用同一查詢模型訪問SQL資料庫和XML文件,還可以用來訪問數據。
技術:LINQ定義了大約40個查詢操作符;如下
<1>排序
OrderBy
按升序對值進行排序。
OrderByDescending
按降序對值進行排序。
ThenBy
按升序執行次要排序。
ThenByDescending
按降序執行次要排序。
Reverse
顛倒集合中的元素的順序。
<2>Set 運算
Distinct
從集合移除重復值。
Except
返回差集,差集是指位於一個集合但不位於另一個集合的元素。
Intersect
返回交集,交集是指同時出現在兩個集合中的元素。
Union
返回並集,並集是指位於兩個集合中任一集合的唯一的元素。
<3>Filtering Data(篩選數據)
OfType
根據值強制轉換為指定類型的能力選擇值。
Where
選擇基於謂詞函數的值。
<4>限定符操作
All
確定是否序列中的所有元素都滿足條件。
Any
確定序列中是否有元素滿足條件。
Contains
確定序列是否包含指定的元素。
<5>數據分區
Skip
跳過序列中的指定位置之前的元素。
SkipWhile
基於謂詞函數跳過元素,直到某元素不再滿足條件。
Take
提取序列中的指定位置之前的元素。
TakeWhile
基於謂詞函數提取元素,直到某元素不再滿足條件。
<6>聯接運算
Join
根據鍵選擇器函數聯接兩個序列並提取值對。
GroupJoin
根據鍵選擇器函數聯接兩個序列,並對每個元素的結果匹配項進行分組。
<7>數據分組
GroupBy
對共享公共屬性的元素進行分組。每個組都由一個 IGrouping<TKey, TElement>對象表 示。
ToLookup
根據鍵選擇器函數將元素插入到 Lookup<TKey, TElement> (一個一對多字典)中。
<8>生成操作
DefaultIfEmpty
將空集合替換為具有默認值的單一實例集合。
Empty
返回空集合。
Range
生成包含數字序列的集合。
Repeat
生成包含一個重復值的集合。
<9>元素操作
ElementAt
返回集合中指定索引處的元素。
ElementAtOrDefault
返回集合中指定索引處的元素;如果索引超出范圍,則返回默認值。
First
返回集合中的第一個元素或滿足條件的第一個元素。
FirstOrDefault
返回集合中的第一個元素或滿足條件的第一個元素。如果沒有這樣的元素,則返回默認值。
Last
返回集合中的最後一個元素或滿足條件的最後一個元素。
LastOrDefault
返回集合中的最後一個元素或滿足條件的最後一個元素。如果沒有這樣的元素,則返回默認值。
Single
返回集合中的唯一元素或滿足條件的唯一元素。
SingleOrDefault
返回集合中的唯一元素或滿足條件的唯一元素。如果沒有這樣的元素或集合不是正好包含一個元素,則返回默認值。
<10>converting Data Types (轉換數據類型)
AsEnumerable
返回類型為 IEnumerable< T> 的輸入。
AsQueryable
將(泛型) IEnumerable 轉換為(泛型) IQueryable。
Cast
將集合的元素強制轉換為指定類型。
OfType
根據值強制轉換為指定類型的能力篩選值。
ToArray
將集合轉換為數組。此方法強制執行查詢。
ToDictionary
根據鍵選擇器函數將元素放入 Dictionary< TKey, TValue> 中。 此方法強制執行查詢。
ToList
將集合轉換為 List<T> 。 此方法強制執行查詢。
ToLookup
根據鍵選擇器函數將元素放入 Lookup< TKey, TElement> (一對多字典)中。 此方法強制執行查詢。
<11>串聯運算
Concat
串聯兩個序列以組成一個序列。
<12>聚合操作
Aggregate
對集合值執行自定義聚合運算。
Average
計算值集合的平均值。
Count
對集合中的元素進行計數,還可以僅對滿足某一謂詞函數的元素進行計數。
LongCount
對大型集合中的元素進行計數,還可以僅對滿足某一謂詞函數的元素進行計數。
Max
確定集合中的最大值。
Min
確定集合中的最小值。
Sum
計算集合中值的總和。

7. C#的lINQ怎麼用干什麼用的

1.LINQ:Language Integrated Query 語言集成查詢。
2.LINQ通過對象的方式對資料庫進行描述。
3.LINQ是一種能夠快速對大部分數據源進行訪問和數據整合的一種技術,使用相同的基本查詢表達式模式類查詢和轉換SQL資料庫、ADO.NET數據集、XML文檔和流已經.NET集合中的數據。
4.使用方法:
LINQ to Objects

LINQ to DataSet
LINQ to SQL
LINQ to Entities
LINQ to XML

8. 使用Linq查詢資料庫的問題

varlst=(fromcinquanxian.View_人員信息
wherec.工號==this.gh.Text.Trim()&&c.密碼==this.pwd.Text
selectc.許可權).ToList();

if(lst.Count<0)
{
varentity=lst[0];
varright=entity.許可權;
switch(right)
{
case0:
break;
case1:
break;
//case2,3,4......
default:
break;
}
}


望採納

9. 如何使用LINQ鏈接資料庫舉個例子(C#.NET)謝謝

1、在App_Code下面添加新項「LINQ to SQL 類」
2、打開該類,設置Name屬性(例如MyLinqDB)和Connection屬性
3、伺服器資源管理器內添加資料庫連接
4、將資料庫內需要操作的表拖入LINQ to SQL 類的設計視圖,並保存
5、新建數據綁定控制項例如ListView1
6、後台Page_Load編寫代碼:
var DB = new MyLinqDB();
var query = from t in DB.T_Users select new {t.ID, t.UserName, t.Password};
ListView1.DataSource = query.Where(t => t.ID > 0).Skip(3 * 20).Take(20);//每頁20,第四頁
ListView1.DataBind();

10. 什麼是LINQ

  • LINQ,語言集成查詢(Language Integrated Query)是一組用於c#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢資料庫相同的方式操作內存數據。

  • 從技術角度而言,LINQ定義了大約40個查詢操作符,如select、from、in、where以及order by(C#中)。使用這些操作符可以編寫查詢語句。不過,這些查詢還可以基於很多類型的數據,每個數據類型都需要一個單獨的LINQ類型。

  • 經過了最近 20 年,面向對象編程技術( object-oriented (OO) programming technologies )在工業領域的應用已經進入了一個穩定的發展階段。程序員現在都已經認同像 類(classes)、對象(objects)、方法(methods)這樣的語言特性。考察現在和下一代的技術,一個新的編程技術的重大挑戰開始呈現出來,即面向對象技術誕生以來並沒有解決降低訪問和整合信息數據( accessing and integrating information )的復雜度的問題。其中兩個最主要訪問的數據源與資料庫(database)和XML(標准通用標記語言下的一個應用)相關。

  • LINQ 提供了一條更常規的途徑即給.Net Framework添加一些可以應用於所有信息源( all sources of information )的具有多種用途( general-purpose )的語法查詢特性( query facilities ),這是比向開發語言和運行時( runtime )添加一些關系數據( relational )特性或者類似 XML 特性( XML-specific )更好的方式。這些語法特性就叫做 .NET Language Integrated Query (LINQ) 。

熱點內容
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:727
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:797
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:504
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:366
ef資料庫查詢數據 發布:2025-05-18 03:29:36 瀏覽:668
百度雲下載文件夾 發布:2025-05-18 03:17:33 瀏覽:674
php雲開發 發布:2025-05-18 03:12:41 瀏覽:447
sql語句顯示表 發布:2025-05-18 03:12:30 瀏覽:690
資料庫系統的例子 發布:2025-05-18 03:02:42 瀏覽:191
數字化儲存與編譯是什麼 發布:2025-05-18 02:56:55 瀏覽:217