做為剛剛實習的dotnet實習生,初步接觸了datatable想做乙個簡單的總結。
首先什麼是datatable,
datatable是乙個臨時儲存資料的網格虛擬表(表示記憶體中資料的乙個表。)。datatable是ado dot net 庫中的核心物件。
建立datatable以及例項及增加一條資料
datatable usertable = new datatable();//建立使用者表,存放使用者密碼和餘額
usertable.columns.add("使用者名稱", typeof(string));//為表新增列,欄位名為使用者名稱,並設定字段型別為string
usertable.columns.add("密碼", typeof(string));
usertable.columns.add("餘額", typeof(int));
datarow dr ;//建立行
dr= usertable.newrow();//例項化行,並建立一條資料
dr["使用者名稱"] = "張三"; //也可以寫dr[0] = "張三";
dr["密碼"] = "1234"; //dr[1] = "1234";
dr["餘額"] = "100"; //dr[2] = "100";
usertable.rows.add(dr);//將這一條資料新增到行中
dr = usertable.newrow();//每建立一行都要例項化一下,並add到dr中
dr["使用者名稱"] = "李四";
dr["密碼"] = "2345";
dr["餘額"] = "0";
usertable.rows.add(dr);
2.刪除datable中的某一條資料
首先根據輸入的使用者名稱找到那一行資料,然後
datarow rows = goodstable.select("商品名='" + goodsname.tostring().trim() + "'");//goodsname是手動輸入的需要刪除的商品名,找到商品名為goodsname的那一行資料,賦給rows
foreach (datarow row in rows)//迴圈遍歷rows,刪除資料
問題1???
為什麼不能直接 goodstable.rows.remove(rows);直接刪除,還要遍歷一下??這麼寫會報錯,, 無法從「system.data.datarow」轉換為「system.data.datarow」。。。。
3.單個查詢並輸出
datarow datarows = personcard.select("姓名='" + namefind + "'"); //根據從namefind中獲取的值在datatable中查詢行資料
datarows[0]["姓名"], datarows[0]["年齡"], datarows[0]["性別"], datarows[0]["愛好"], datarows[0]["**"]);//顯示獲取的第0行「name」列的值
4.查詢全部
foreach (datarow datarows in personcard.rows) //查詢全部,personcard是乙個datatable
5修改資料
console.writeline("請輸入您要修改的商品");//判斷是否存在此商品
goodsname = console.readline();
datarow datarow = goodstable.select("商品名='" + goodsname + "'");
console.writeline("您要修改的原來單價為", datarow[0]["商品名"], datarow[0]["單價"]);
console.writeline("請輸入您修改後的單價");
string message = console.readline(); //修改內容
datarow rows = goodstable.select("商品名='" + goodsname.tostring().trim() + "'");
foreach (datarow row in rows)
6.充值,取乙個資料加上輸入的數,在放回去
console.writeline("請輸入需要充值的使用者名稱");
string chongname = console.readline();
if (usertable.select("使用者名稱='" + chongname + "'").length == 0)
console.writeline("請輸入需要充值的金額");
int money = int.parse(console.readline());
datarow rows = usertable.select("使用者名稱='" + chongname.tostring().trim() + "'");
**int e = (int)rows[0]["餘額"] + money;//劃重點**
rows[0]["餘額"] = e;
console.write("充值成功,充值後餘額為");
console.writeline(e);
7.結賬,單價累加
for (int i = 0; i < 2; i++)
datarow rowsuser = usertable.select("使用者名稱='" + name.tostring().trim() + "'");
int yue = (int)rowsuser[0]["餘額"];
yue = yue - summoney;
rowsuser[0]["餘額"] = yue;
console.write("您需要付款(元):");
console.writeline(summoney);
C 中DataTable的用法
分類 net 2009 03 11 16 16 175483人閱讀收藏 舉報 c dataset string constraints datatables 在專案中經常用到 datatable,如果datatable 使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對 da...
C 中DataTable的用法
一 datatable 簡介 1 建構函式 datatable 不帶引數初始化 datatable 類的新例項。datatable string tablename 用指定的表名初始化 datatable 類的新例項。datatable string tablename,string tablena...
C 中DataSet與DataTable的異同詳知
c dataset與datatable的區別和用法 dataset是資料集,datatable是資料表,dataset儲存多個datatable。dataset和datatable像是專門儲存資料的乙個容器,在你查詢資料庫得到一些結果時可以存在裡面。dataset功能強大有瀏覽 排序 搜尋 過濾 處...