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

首頁 > 編程 > .NET > 正文

親密接觸ASP.Net(10)

2024-07-10 12:55:25
字體:
來源:轉載
供稿:網友

接上一節,我們這一節主要計論如何使用dataset,在數據庫中增加、修改、刪除一個數
據。

首先我們需要打開一個聯結,我們的數據庫還是用上一節的吧:)

string myconnstring = "driver={microsoft access driver (*.mdb)};
dbq=c:/test/test.mdb;";
string strcomm = "select * from userlist";
adoconnection myconnection = new adoconnection(myconnstring);
adodatasetcommand mycomm = new adodatasetcommand(strcomm,myconnection);

這里我們為了講解方便,只在dataset存入一個表的內容:

dataset mydataset = new dataset();
mycomm.filldataset(mydataset,"userlist");

此時我們就獲得了一個擁有userlist表數據的dataset。在講解dataset之前,我們還需
要了解dataset的結構下面是dataset的結構樹

dataset
relationscollection
extendedproperties
tablescollection  
datatables
 
rows
columns
其它
由于我們研究的是datatable,其它的我們暫時不管他們。一個dataset中包含多個datat
able,一個datatable又包含有多個row,這就是我們操作dataset的基礎啦:)

添加數據

添加一數據,從上面的列表中我們可以看出,其實就是添加一行row,這里我們也來演示
一下如何添加一行數據,我們程序一切以dataset為頂點,呵呵,如果tablescollection
,rowscollection下去的話,還有一些煩人的dt.acceptchanges這些方法的調用,很煩人
,還是一次搞定吧。

datarow dr=mydataset.tables["userlist"].newrow();
dr["username"] = "周訊";
dr["remark"] = "100";
dr["comment"] = "漂亮mm";
mydataset.tables.rows.add(dr);

第一行,我們建立一個新的數據行,它用來儲存我們新加入的數據。然后我們在這個數
據行中加入我們需要的數據。dr["username"]表明是對username字段進行添加,你可以
使用dr[1]來添加信息,但是這需要我們事先知道字段在數據表的位置,而且在不知道數
據表結構的情況很難知道我們添加的數據的對應情況,所以還是用字段名為好。

最后我們使用rowscollection的add方法,將我們新建這一行加入到數據表中。

修改數據

知道如何添加數據后,修改數據也是很簡單的事情了.

mydataset.tables["userlist"].rows[0]["username"]="飛刀大哥";

這樣我們就修改了第一行數據中的username字段。

刪除數據

刪除數據,主要是使用rowscollection提供的delete方法,看下面的程序也是很簡單的
事情啦:)

mydataset.tables["userlist"],rows[0].delete();

這一行數據就已經被刪除了。

恢復數據

有時候我們添加/修改數據會出現錯誤,這時候,就需要恢復原來的數據。下面的程序,
顯示如何判斷是否有錯誤發生:

if(mydataset.haserrors)
{
mydataset.rejectchanges();
}
 

首先我們檢查dataset中是否有錯誤發生,如果有就使用rejectchanges()方法,恢復dat
aset中的數據。注意這里恢復是在dataset中所有表以及表中datarow中的數據,也就是
在此交次操作的數據全部恢復。如果我們只需要恢復部分內容,我們可以使用datatable
或datarow的rejectchanges(),這里就不詳細講解了,使用方法和dataset一樣,只是操
作的對像不同而已。

探測dataset是否有改動

我們在將dataset送交給數據庫去保存去,我們需要看看這個dataset是否已經被改動了
。如果沒有改動,我們也就沒有必要去修改數據庫了。

if(mydataset.haschanges)
{
//保存
}else{
//不進行任何操作
}

更新數據庫

我們上面的操作,都只是針對dataset的,沒有操作數據庫,但是我們的目的還是要將數
據保存到數據中去,所以我們這里就需要調用datasetcommand的update方法。下面的程
序顯示如何將dataset的數據交給數據庫。

mycomm.update(mydataset);

很簡單的一句,呵呵。這里要注意,如果一個dataset中包含有多個表,而我們只更新一
個,那我們就必須寫明更新的數據表名:

mycomm.update(mydataset,"userlist");

當update方法被調用后,datasetcommand會將數據庫中的數據與dataset中的數據相比較
,對不相同的地方進行更新。

對于dataset的操作,我們這里只講這么多,其實dataset的方法和屬性有很多,功能也
很全,我想現在這里的所講的功能,對一般的操作已經足夠了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萝北县| 比如县| 竹山县| 伊金霍洛旗| 三门峡市| 泾阳县| 简阳市| 龙里县| 丰顺县| 满城县| 高唐县| 忻城县| 桐庐县| 宁波市| 江安县| 北碚区| 东明县| 维西| 麻栗坡县| 新田县| 侯马市| 社会| 始兴县| 乐都县| 石狮市| 娱乐| 西贡区| 策勒县| 万荣县| 阿拉善盟| 星子县| 武汉市| 滨州市| 乌兰察布市| 宜川县| 郧西县| 鹤庆县| 高雄市| 湟中县| 聂拉木县| 巴彦淖尔市|