C 中的Datatable(初步)

2021-08-10 15:12:53 字數 2979 閱讀 5459

做為剛剛實習的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功能強大有瀏覽 排序 搜尋 過濾 處...