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 表示列表的...