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

首頁 > 開發 > 綜合 > 正文

淺談DataSet

2024-07-21 02:07:54
字體:
來源:轉載
供稿:網友

   dataset是ado.net開發人員為方便數據處理開發出來的,是數據的集合,是為解決datareader的缺陷設計的,datareader數據處理速度快,但它是只讀的, 而且一旦移到下一行,就不能查看上一行的數據,dataset則可以自由移動指針。dataset的數據是與數據庫斷開的。dataset還可用于多層應用程序中,如果應用程序運行在中間層的業務對象中來訪問數據庫,則業務對象需將脫機數據結構傳遞給客戶應用程序。

  dataset的功能:瀏覽、排序、搜索、過濾、處理分級數據、緩存更改等。還可以與xml數據互換。dataset中可包括多個datatable,可將多個查詢結構存到一個dataset中,方便操作,而datatable中又包括多個datarow、datacolumn,可通過這些datarow、datacolumn來查看、操作其中的數據,而需將操作結果返回給數據庫的話,則可以調用dataadapter的update方法。

  dataset的操作:
dataset ds=new dataset();
datatable dt=new datatable("newtable");
ds.tables.add(dt);dataset ds=new dataset();
datatable dt=ds.tables.add("newtable");
上述兩種方法都可以在dataset中添加一個datatable,看需要而進行選擇。添加datatable后,需向其中添加行和列。
dataset ds=new dataset();
datatable dt=ds.tables.add("newtables");
datacolumn col=dt.columns.add("newcolumn",typeof(int));
col.allowdbnull=false;
col.maxlength=4;
col.unique=true;

上述代碼向dataset中的datatable中添加名為”newcolumn”,類型為int且不為空,最大長度為4和唯一性為真的列。
dt.primarykey=new datacolumn[]{dt.columns["id"]}
這段代碼是繼續上面代碼的,為一個datatable中添加一個主鍵列,主鍵列是一個數據組,如有多個主鍵,只需在數組中添加一個列即可。如下:
dt.primarykey=new datacolumns[]{dt.columns["orderid"],dt.columns["productid"]}
添加外鍵:
foreignkeyconstraint fk;
fk=new foreignkeyconstraint(ds.tables["customers"].columns["customerid"],ds.tables["orders"].columns["customerid"]);
ds.tables["orders"].constraints.add(fk);
//上述代碼假如已經為cusomers表和orders創建了主鍵,此句為添加外鍵約束。
上述是根據customers表和orders表的customerid來創建約束。

下面介紹修改datarow中的內容:
datarow dr=ds.tables["customer"].rows.find("anton");
if(dr==null)

else
{
dr.beginedit(); 
dr["companyname"]="newvalue";
dr["contactname"]="newvalue2";
dr.endedit();
}
//上面代碼通過row集合的find方法來在datatable中的行進行定位,找到"anton"行,再修改"anton"行中companyname列和contactname列的值。通過beginedit和endedit來緩存對行的修改,還可調用 canceledit為取消修改。
判斷某列是否為空值:
datarow dr=ds.tables["customers"].rows.find("aaa");
if(dr.isnull("contactname");
 ..
else
 dr["contactname"]=dbnull.value
//這里判斷contactname列是否為空,如果不是則為其賦空值,呵,很無厘頭的做法,這里只為演示為列賦空值的做法。
刪除datarow:

有兩種方法可以刪除datarow,delete方法和remove方法和removeat方法。其區別是delete方法實際上不是從datatable中刪除掉一行,而是將其標志為刪除,僅僅是做個記號,而remove方法則是真正的從datarow中刪除一行,removeat方法是根本行的索引來刪除。列:
datarow dr=ds.tables["table"].rows.find("a");
ds.tables["table"].remove(dr);

ds.tables["table"].remove(index);
//dr 為"a"所在的行,查出后將其刪除,index為 "a"所在的索引號。關于dataset中的其用法,參照msdn
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 陕西省| 岳普湖县| 顺平县| 鹤庆县| 新乡县| 涟源市| 广平县| 嘉义县| 平乐县| 鹤壁市| 苍山县| 中卫市| 淮滨县| 宜章县| 香格里拉县| 玉林市| 博客| 乌鲁木齐县| 方山县| 文登市| 武胜县| 汉川市| 龙井市| 安义县| 永吉县| 吉隆县| 伊川县| 山西省| 南木林县| 南部县| 浮山县| 东阿县| 咸丰县| 盐边县| 临泽县| 五峰| 应用必备| 崇阳县| 彭水| 阜南县| 新干县|