[問題] 使用Grid存入DataSet

看板C_Sharp作者 (肥仔)時間12年前 (2012/02/24 11:56), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
最近在練習做這個↓ 使用grid建立一個表單,可輸入值按下按鈕會做簡單的加減乘除計算 問題↓ 建立一個空間存放grid的資料,使用表單方式抓取資料 0 0 1 2 3 4 .. 1 2 1列3欄,2列3欄,...N列3欄抓取值 設立變數i跑for迴圈 for(int i=0 ; i<資料的筆數 ; i++) { 資料筆數i,資料得值第3欄 } 抓取的直一一列出,做加減乘除計算,最後存回一個變數 將結果存回資料欄位覆蓋或存至新欄位 顯示欄位的資料 END 對這塊還不熟悉,正在看簡報的DataSet物件圖了解觀念中 希望有人可以幫忙,謝謝 --------------------------------------------------- int count = 0; //數量 int money = 0; //單價 int goodsmoney = 0; //商品金額 int totalmoney = 0; //總金額 DataSet ds = new DataSet(); ds = tgird.GetDataSet(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { count = Convert.ToInt16(ds.Tables[0].Rows[i][1]); money = Convert.ToInt16(ds.Tables[0].Rows[i][2]); goodsmoney = count * money; ds.Tables[0].Rows[i][3] = goodsmoney; totalmoney = totalmoney + goodsmoney; } tgird.SetDataSet(ds); tmoney.Text = Convert.ToString(totalmoney); 程式寫完了,測試上沒什麼問題 問題↓ 1. ds.Tables[0].Rows[i][1] 2. ds.Tables[0].Rows[i].ItemArray[1] 這兩種寫法差在哪?? 兩種都可以讀取到我要的資料,可是要寫回去給商品金額的時候卻沒辦法寫回去 ds.Tables[0].Rows[i][3] = goodsmoney; 這種可以寫回去填入值,可是↓ ds.Tables[0].Rows[i].ItemArray[3] = goodsmoney; 卻沒有辦法寫回去商品金額 請問有人知道是為什麼嗎?? 希望有人幫忙,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.126.138 ※ 編輯: popo1080a 來自: 118.170.126.138 (02/24 15:02)

02/24 17:27, , 1F
ItemArray是回傳一份資料的copy,不是把DataRow內部的array
02/24 17:27, 1F

02/24 17:27, , 2F
reference給你,所以改ItemArray的值不會反應到DataRow
02/24 17:27, 2F

02/24 17:29, , 3F
如果你只要存取一個值的話,用Item(indexer)就好
02/24 17:29, 3F

02/29 11:41, , 4F
謝謝 受教了!
02/29 11:41, 4F
文章代碼(AID): #1FHmfKCv (C_Sharp)