C 使用LINQ訪問資料庫

2021-06-06 01:13:41 字數 2322 閱讀 8666

c#的linq方式訪問資料庫無疑是非常方便的,下面給出了使用linq方式訪問mssql的基本方法。

首先宣告命名空間using system.data.sqlclient;

再使用sqlconnection類連線,sqlcommand類執行sql命令,結果返回給sqldatareader類或其它類。

各類的基本用法介紹:

sqlconnection類

在構造時傳入連線資料庫字串,也可以定義後通過connectionstring屬性來設定。

用open()連線資料庫,用close()關閉連線。

sqlcommand類

在構造時傳入sql命令和sqlconnection類物件,也可以定義後通過commandtext屬性和connection屬性來設定。

執行sql命令並得到結果                 sqldatareader executereader()

執行sql命令並得到受影響的行數    int executenonquery()

sqldatareader類

得到共有多少列          fieldcount屬性

得到第i列的列名         string getname(int i)

得到第i列的資料型別  type getfieldtype(int i)

判斷第i列是否為空     bool isdbnull(int i)

得到第i列的資料        object getvalue(int i)也可以直接sr[i].tostring()

前進到下一列            bool read()

關閉                         void close()

對於每個關聯的sqlconnection,一次只能開啟乙個sqldatareader,在第乙個關閉之前,開啟另乙個的任何嘗試都將失敗。類似地,在使用sqldatareader 時,關聯的sqlconnection 正忙於為它提供服務,直到呼叫close()時為止。

下面一些示例**:

//連線資料庫 

string sqlconnect = @"server=pc-200907281720\sqlexpress;database=master;uid=morewindows;pwd=12345"; 

sqlconnection conn = new sqlconnection(sqlconnect); 

conn.open(); 

//連線資料庫之後就可以執行sql命令了 

//使用sqlcommand類的executereader()返回執行的結果 

string sqlcommand = "select cname, names, c4.lastlogin from c4, s4 where c4.lastlogin = s4.lastlogin order by cname, names"; 

sqlcommand sqlcmd = new sqlcommand(sqlcommand, conn); 

sqldatareader sr = sqlcmd.executereader(); 

console.writeline("列數:" + sr.fieldcount);    

console.writeline("列型別分別為:");  

int nsqlcol = sr.fieldcount; 

for (int i = 0; i < nsqlcol; ++i) 

console.write(sr.getfieldtype(i) + " "); 

console.writeline(); 

while (sr.read()) 

for (int i = 0; i < nsqlcol; i++) 

console.write(sr[i].tostring() + " "); 

console.writeline(); 

sr.close(); 

//通過sqlcommand 類的executenonquery()來返回受影響的行數。 

string sqlcommand2 = "update dbo.messages set messagenum='15' where messageid='2'"; 

sqlcommand sqlcmd2 = new sqlcommand(sqlcommand2, conn);//也可以用sqlcmd. connectionstring = sqlcommand2 代替 

int nresult = sqlcmd2.executenonquery(); 

console.writeline("受影響行數:" + nresult); 

conn.close();

C 之LinQ資料庫

一 與linq有關的語言特性 1.隱式型別 1 源起 在隱式型別出現之前,我們在宣告乙個變數的時候,總是要為乙個變數指定他的型別 甚至在foreach乙個集合的時候,也要為遍歷的集合的元素,指定變數的型別 隱式型別的出現,程式設計師就不用再做這個工作了。2 使用方法 來看下面的 var a 1 in...

C 訪問資料庫

c 訪問資料庫無疑是非常方便的,下面給出了c 訪問mssql的基本方法。首先宣告命名空間using system.data.sqlclient 再使用sqlconnection類連線,sqlcommand類執行sql命令,結果返回給sqldatareader類或其它類。各類的基本用法介紹 sqlco...

C 訪問資料庫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!c 訪問資料庫無疑是非常方便的,下面給出了c 訪問mssql的基本方法。首先宣告命名空間using system.data.sqlclient 再使用sqlconnection類連線,sqlcommand類執行sql命令,結果返回給sqldatar...