第五節 21型別化DataSet

2022-03-12 17:17:49 字數 2317 閱讀 9472

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using _21型別化dataset_2.dataset1tableadapters;

using system.data.sqlclient;

/* 弱型別dataset的缺點

* 只能通過列名引用,dataset.table[0].rows[0]["age"],如果寫錯了列名編譯時不會發現錯誤,因此開發時必須要記首列名

* int age = convert.toint32(dataset.rows[0]["age"]),取到的字段的值是object型別,必須小心翼翼的進行型別轉換,不僅麻煩,而且容易出錯

* 將dataset傳遞給其他使用者,使用者很難識別出有哪些些列可以供使用

* * 執行時才能知道所有列名,資料繫結麻煩,無法使用winform. asp.net的快速開發功能

* * 自己動手寫強型別dataset(型別化dataset,typeddataset),建立繼承自dataset的persondataset類,封裝出int? age等屬性和bool isagenull等方法,向persondataset中填充

* * vs自動生成強型別dataset

* * 新增->新建項->資料集

* *

* **中使用dataset示例: cc_recordtableadapter adapter = new cc_recotdtableadapter();

* 如何得知adapter的類名? 選中dataset中下半部分的adapter,name屬性就是類名,需要右鍵點週類名->解析

* * 取得所有資料: adapter.getdata(), 例子程式: 歷顯示所有資料,i使用sql語句,就可以添別緻多種型別的sql語句,如果是"select(返回行)"

* 則sql語句的列必須是對應的dataset類的父集合,生成兩個方法:fillby*和getby*,方法名根據查詢語句的意義定,比如fillbyage,fillby是將結果填充到現有dataset

* getby是將結果以dataset方式返回,建議兩個都生成,方便以後,看看預設生成的getdata就明白了

* * getdatabyld, incage

* select(返回單個值)就是executescalar

* * 對於增加的sql語句在**中是以方法的形式使用的,方法的引數型別,順序就是vs猜測的,如果不正確或者需要調整只要選中對應的語句,然後[屬性]視窗中此伏彼起改parameters屬性即可

* * 新增新的sql語句本質論,探索尋原始碼,不能併發呼叫

* * 像使用普通類的方法一樣使用adapter,sql語句不用再寫在介面**中,這就是一種類據訪問層 dal data access layer

*/namespace _21型別化dataset_2

private void button1_click(object sender, eventargs e)

,年齡",us.name, us.age);

messagebox.show(msg);

}//更新dataset

//user[0].name = "aaa";

//查入資料

"小向",44);//好像這裡並沒有進資料庫

//sqlcommandbuilder builder = new sqlcommandbuilder(adapter);

}//引用一下類中的類

private void button2_click(object sender, eventargs e)

,年齡:",user.name,user.age);

messagebox.show(msg);

}private void button3_click(object sender, eventargs e)

else

}private void button4_click(object sender, eventargs e)

private void tb_login_click(object sender, eventargs e)

else

else

else }}

}else }}

}

函式第五節

coding utf 8 1.定義乙個func name 該函式效果如下。assert func lilei lilei assert func hanmeimei hanmeimei assert func hanmeimei hanmeimei def title name if isinsta...

第五節 字典

字典的表現形式為大括號 dict key必須可hash,必須唯一且必須為不可改變的資料型別 value可存放任意多個值,可修改,可不唯一 無序且查詢速度快 鍵 值 鍵值對 1 dic.keys 返回乙個包含字典所有key的列表 2 dic.values 返回乙個包含字典所有value的列表 3 di...

第五節 列表(list)

lpush listname value lpush 命令將乙個或多個值插入到列表頭部。lpush newlist valuea valueb lindex listname index 佇列從做往右,索引從0開始。隊頭在左邊,新插入的元素就是索引為0的元素。你也可以使用負數下標,以 1 表示列表的...