十天學(xué)會ASP.net之第六天
2024-07-10 12:57:42
供稿:網(wǎng)友
 
學(xué)習(xí)目的:學(xué)會讀取數(shù)據(jù)庫
有的網(wǎng)友說,不會c#,在asp.net里面還是選擇vb.net,這個我不反對,但是我覺得既然是學(xué)習(xí)新的東西,就不要在意有多少是新的。實際上c#就一般的操作來說,只是區(qū)分大小寫和多了一個分號這兩點與vb.net不同其他都差不多啊。在asp里面我們讀取數(shù)據(jù)就直接用recordset,然后在html代碼里面穿插<%= %>就可以顯示了,但是asp.net講究的是代碼分離,如果還是這樣顯示數(shù)據(jù)就不能代碼分離了。所以我們有兩種方法:如果是讀取一條記錄的數(shù)據(jù)或者不多的數(shù)據(jù),我們用datareader采集數(shù)據(jù),然后賦值給label控件的text屬性即可;如果是讀取大量數(shù)據(jù)我們就采用datagrid。
今天我們就來說一下datareader:
string strconnection="provider=microsoft.jet.oledb.4.0;data source=";
strconnection+=server.mappath(strdb);
oledbconnection objconnection=new oledbconnection(strconnection);
oledbcommand objcommand = new oledbcommand("這里是sql語句" , objconnection); 
objconnection.open();
oledbdatareader objdatareader=objcommand.executereader();
if(objdatareader.read())
{
oicq.text=convert.tostring(objdatareader["useroicq"]);
homesite.text=convert.tostring(objdatareader["usersite"]);
face.selecteditem.text=convert.tostring(objdatareader["userface"]);
} 
大家可以看到我們首先是連接數(shù)據(jù)庫然后打開,對于select的命令,我們申明一個oledbcommand來執(zhí)行之,然后再申明一個oledbdatareader,來讀取數(shù)據(jù),用的是executereader(),objdatareader.read()就開始讀取了,在輸出的時候我們要注意text屬性接受的只能是字符串,所以我們要把讀出的數(shù)據(jù)都轉(zhuǎn)化為字符串才行。
轉(zhuǎn)換變量類型函數(shù):
轉(zhuǎn)換為字符串:convert.tostring()
轉(zhuǎn)換為數(shù)字:convert.toint64(),convert.toint32(),convert.toint16() 是按照數(shù)字位數(shù)由長到短
轉(zhuǎn)換為日期:convert.todatetime()
--------------------------------------------------------------------------------
dim objconnection as oledbconnection
dim objcommand as oledbcommand
dim objdatareader as oledbdatareader
objconnection=new oledbconnection(provider=microsoft.jet.oledb.4.0;data source="+server.mappath(strdb))
objcommand=new oledbcommand("這里是sql語句" , objconnection) 
objconnection.open()
objdatareader=objcommand.executereader()
if objdatareader.read()
oicq.text=convert.tostring(objdatareader["useroicq"])
homesite.text=convert.tostring(objdatareader["usersite"])
face.selecteditem.text=convert.tostring(objdatareader["userface"])
end if
其實大家比較一下c#和vb的語法,會發(fā)覺用c#似乎更加簡單,教程里面我側(cè)重c#,對于vb的代碼我就不解釋了。
下面說一下如果代碼是讀取sql數(shù)據(jù)庫,我們這樣來轉(zhuǎn)變
1、把代碼開始的
<%@import namespace="system.data"%>
<%@import namespace="system.data.oledb"%>
修改為
<%@import namespace="system.data"%>
<%@import namespace="system.data.sqlclient"%> 
2、把代碼里面所有申明的對象oledb××變?yōu)閟ql××就這么簡單
你甚至可以用替換所有來解決,所以今后我講不再列出sql server的代碼了。
今天就說到這里,明天開始說數(shù)據(jù)的添加、刪除、修改。
本文來源于網(wǎng)頁設(shè)計愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。