更新数据表中包含多行的行中的单个单元格

时间:2012-12-05 09:36:03

标签: c# asp.net datatable

如何更新一行中的单个单元格,例如Row [0]我想用当前值+1更新“Value”列。这是我所拥有的代码,它选择单行,但值更新时包含所有列“值”数据,然后是+1

public void MetricChange()
    {
        DataTable dt = ds.Tables["MetricTable"];
        int value = dt.AsEnumerable().Sum(r1 => r1.Field<int>("Value"));
        if (Access.Checked)
        {
            ds.Tables["MetricTable"].Rows[0]["Value"] = value +1;
            //ds.Tables["MetricTable"].Rows[1]["Value"] = value - 1;
            Chart2.DataSource = ds.Tables["MetricTable"];
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }

    }

如何更新单行中的“值”列???

2 个答案:

答案 0 :(得分:1)

目前您只修改了一行,您需要为数据表中的每一行执行此操作。

for(int i = 0; i < ds.Tables["MetricTable"].Rows.Count;i++)
    ds.Tables["MetricTable"].Rows[i]["Value"] = value +1;

最好根据null和表存在来检查数据集。就像是。

if(ds != null && ds.Tables.Count > 0 && ds.Tables["MetricTable"] != null)

答案 1 :(得分:0)

你就是这样做的:P

int val = Convert.ToInt32(ds.Tables["MetricTable"].Rows[0]["Value"]) + 1;

然后按此ds.Tables["MetricTable"].Rows[0][1] = val

更新行