国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

親密接觸ASP.Net(6)

2024-07-10 12:55:26
字體:
供稿:網(wǎng)友

關(guān)于namespace(命名空間)的使用

在前面的程序中我們看到,我常用<% @ import namespace="system.data" %>,這是在引
用m$為我們提供的namespace,這和asp不同的,我們在asp.net必須先引用與我們操作有
關(guān)的namespace后才能使用相應(yīng)的功能。其實說白了,一個namespace; 就是一個組件。
這個是關(guān)于asp.net的高級應(yīng)用,我會在后面的章節(jié)講。(不過要寫到那里,時間......
)

我下面簡單的列舉一些常用的namespace

<% @ import namespace="system.data" %> 處理數(shù)據(jù)時用到
<% @ import namespace="system.data.ado" % > 使用ado.net ; 時用到
<% @ import namespace="system.data.sql" %> sql server 數(shù)據(jù)庫專用
<% @ import namespace="system.data.xml" %> 不用看處理xml用到
<% @ import namespace="system.io" %> 處理文件時用到
<% @ import namespace="system.web.util" %> 發(fā)郵件時大家會用到
<% @ import namespace="system.text" %> 文本編碼時用到

操作數(shù)據(jù)庫需要的東東

講解了namespace,我們可以正式來討論數(shù)據(jù)庫的應(yīng)用了。從上面的可以看出,我們操作
數(shù)據(jù)庫,我們需要引用下面兩個namespace

<% @ import namespace="system.data" %>
<% @ import namespace="system.data.sql" %>

其實system.data.sql 可以用system.data.ado來代替,sql是sql server專用,ado可以
支持任何數(shù)據(jù)庫(只要在主機上存在相應(yīng)的驅(qū)動就行了,如access,mysql,oracle之類的
),這里由于飛刀的數(shù)據(jù)庫是sql server,本來可以用ado,但是想想m$單獨把sql獨立出
來,為何不用呢。至于它能帶來多少好處,飛刀沒有測試過,對sql server肯定要比ado
好一點啦。

無論是ado還是sql ,他們都有幾個基本的對象用于操作

connections 連結(jié)到一個數(shù)據(jù)庫,以便于后面的應(yīng)用(類似ado中的connections)
commands 執(zhí)行sql語句的地方
datareader 讀取執(zhí)行后返回的數(shù)據(jù)內(nèi)容
dataset 儲存數(shù)據(jù),功能強大,我們會具體講解
datasetcommand 執(zhí)行sql語句,并把數(shù)據(jù)存入dataset

這里面可能最難理解的就是dataset,我們先不去管他,先拿軟的開刀

connections(sqlconection 或者 adoconnection)

它的主要任務(wù)就是建立一個與數(shù)據(jù)庫服務(wù)器的聯(lián)結(jié)

<% @ page language="c#" %>
<% @ import namespace="system.data" %>
<% @ import namespace="system.data.sql" %>
<script language= "c#" runat= "server">
public void page_load(object src,eventargs e)
{
stringstrprovider="server=localhost;uid=sa;pwd=;database=aspcn";
sqlconnection myconnection=new sqlconnection(strprovider);
}
</script>

上面我們建立了一個名為myconnection的聯(lián)結(jié),就好像我們在asp中用adodb.connection
打開了一個聯(lián)結(jié).這個聯(lián)結(jié)我們在command或者datasetcommand中將會使用.

它的一些有用的屬性和方法有

connectionstring 取得或設(shè)置連結(jié)數(shù)據(jù)庫的語句
connectiontimeout 取得或設(shè)置連結(jié)數(shù)據(jù)庫的最長時間,也是就超時時間
database 取得或設(shè)置在數(shù)據(jù)庫服務(wù)器上要打開的數(shù)據(jù)庫名
datasource 取得或設(shè)置dsn,大家不會陌生吧:)
password 取得或設(shè)置密碼
userid 取得或設(shè)置登陸名
state 取得目前聯(lián)結(jié)的狀態(tài)
open() 打開聯(lián)結(jié)
close() 關(guān)閉聯(lián)結(jié)
clone() 克隆一個聯(lián)結(jié)。(呵呵,綿羊可以connection我也可以)


我們也通過一個小例子來看看他們的用法:
sqlconnection myconnection = new sqlconnection();
myconnection.datasource = "mysqlserver";
myconnection.password = "";
myconnection.userid = "sa";
myconnection.connectiontimeout = 30;
myconnection.open();
myconnection.database = "northwind";
myconnection.isolationlevel = isolationlevel.readcommitted

commands(sqlcommand 或者 adocommand)

上面的程序中我們打開了一個聯(lián)結(jié),這里我們就需要來使用這個,看例子比較好:

<% @ page language="c#" %>
<% @ import namespace="system.data" %>
<% @ import namespace="system.data.sql" %>
<script language="c#" runat="server">
public void page_load(object src,eventargs e)
{
stringstrprovider="server=localhost;uid=sa;pwd=;database=aspcn";
string strindex="select * from aspcn where purview='webmaster'";
sqlconnection myconnection=new sqlconnection(strprovider);
sqlcommand mycommand = new sqlcommand(strindex,myconnection);
myconnection.open(); //打開聯(lián)結(jié)
mycommand.executenonquery(); //執(zhí)行sql,但不返回任何記錄
myconnection.close();
}
</script>

在上面的例子中我們建立sqlcommand對象時引用了兩個參數(shù)(strindex,myconnection),
從源程序中我們也可以看出來strindex代表的是執(zhí)行的sql語句,myconnection是我們先
前建立的聯(lián)結(jié).然后我們就要先打開myconnnection,然后再執(zhí)行這個sql語句。我們在這
里執(zhí)行用的是executenonquery()方法,這樣不返回記錄集,只是返回受影響的記錄個數(shù)


這里我們打開和關(guān)閉數(shù)據(jù)庫也可以這樣做。

stringstrprovider="server=localhost;uid=sa;pwd=;database=aspcn";
string strindex="select * from aspcn where purview='webmaster'";
sqlconnection myconnection=new sqlconnection(strprovider);
sqlcommand mycommand = new sqlcommand(strindex,myconnection);
mycommand.activeconnection.open();
mycommand.executenonquery();
mycommand.activeconnection.close();

所得結(jié)果和先前的一樣。所以執(zhí)行一條sql語句有很多種方法。而且還不只兩種,我們后
面學(xué)了datasetcommand,那打開方法就是n種了:)這就需要看你的習(xí)慣和程序的要求了
;)

我們先來看看command常用的方法和屬性

activeconnection 取得或設(shè)置聯(lián)結(jié)connections
commandtext 執(zhí)行的sql語句或儲存過程(storedprocedure)名
commandtimeout 執(zhí)行的最長時間
commandtype command操作的類型(storedprocedure,text,tabledirect)三種,默認text
parameters 操作儲存過程時使用
execute() 執(zhí)行sql語句或儲存過程
executenonquery() 同上,區(qū)別在于不返回記錄集
clone() 克隆command


同樣看一個例子:


string myselectquery = "select * from categories order by categoryid";
stringmyconnectstring="userid=sa;password=;database=northwind;server=mysqlser
ver";
sqlcommand mycommand = new sqlcommand(myselectquery);
mycommand.activeconnection = new sqlconnection(myconnectstring);
mycommand.commandtimeout = 15;
mycommand.commandtype = commandtype.text;< /font >


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 依安县| 古田县| 宜丰县| 贺兰县| 曲周县| 鄂托克前旗| 荔波县| 阳城县| 龙游县| 高台县| 定州市| 义马市| 清水县| 佛教| 长武县| 霞浦县| 定兴县| 全州县| 宜阳县| 滁州市| 安仁县| 杨浦区| 阿尔山市| 昆明市| 周至县| 柳林县| 定远县| 弥渡县| 梅河口市| 炉霍县| 仁布县| 宝清县| 库车县| 霍城县| 重庆市| 泾川县| 木兰县| 夹江县| 临猗县| 兰西县| 来宾市|