iT邦幫忙

0

C# Dataable 能否重設資料?

  • 分享至 

  • xImage

您好:

如下程式碼
但執行時,卻會出現
Module:XXXX, MethodName:m_rpt_01
Error:資料行 'amt' 是唯讀。
用其他欄位也是會現這樣

請問 datatable 不能 載入後、再叫出來 更改內容嗎?

目前,因為SQL 端無法產生qarcode
所以得在 c#端處理,
所以撈出來的資料其中一個,要再去設定qrcode的值
目前只先 就tDATATABLE 可否處理
就卡住了

謝謝

            cmd.Parameters.Clear();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "RPT";
            
              SqlDataReader dr = cmd.ExecuteReader();
            //建立DataTable物件
            DataTable table1 = new DataTable();
            //DataReader物件載入DataTable
            table1.Load(dr);

            
            foreach (DataRow rw in table1.Rows)
            {
            //   rw["sno"] = Int32.Parse(rw["sno"].ToString()) + 100;
                rw["amt"] = Int32.Parse(rw["amt"].ToString()) + 100;
                

               // rw["deptna"] = "XX"; //rw["deptna"].ToString() + "XX";
              
            }
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
kawa0710
iT邦新手 1 級 ‧ 2024-10-31 15:46:03
最佳解答

再建一個DataTable, 用新增DataRow的方式把table1資料存到新的DataTable

DataTable dtTable = new DataTable();
DataRow row;

// 建立欄位
dtTable.Columns.Add("sno", typeof(int));
dtTable.Columns.Add("amt", typeof(int));
dtTable.Columns.Add("deptna", typeof(string));

// 新增資料到DataTable
foreach (DataRow rw in table1.Rows)
{
    row = dtTable.NewRow();
    row["sno"] = Int32.Parse(rw["sno"].ToString()) + 100;
    row["amt"] = Int32.Parse(rw["amt"].ToString()) + 100;
    row["deptna"] = rw["deptna"].ToString() + "XX";
    dtTable.Rows.Add(row);
}
noway iT邦研究生 1 級 ‧ 2024-11-01 13:13:01 檢舉

您好:
有找到用
foreach (DataColumn col in table1.Columns) { col.ReadOnly = false; };

謝謝

我要發表回答

立即登入回答