如何在不循环的情况下更改DataTable列值?

the*_*van 9 c# asp.net datatable

我有一个有4列的DataTable.我想将第3列的值更改为"0".下面是我的DataTable.

ID             Name            Value      Type
----            ----            -----      -----
1              Sam              250        2
2              Rai              324        3
3              Tim              985        8
Run Code Online (Sandbox Code Playgroud)

我想要的结果如下:

 ID             Name            Value     Type
----            ----            -----     ------
1              Sam              0          2
2              Rai              0          3
3              Tim              0          8
Run Code Online (Sandbox Code Playgroud)

如何实现这一点而不循环?请给我任何建议.

she*_*bin 13

这个怎么样?↓没有循环....

static void Main(string[] args)
{
    DataTable table = new DataTable();

    table.Columns.Add("col1");
    table.Columns.Add("col2");

    table.Rows.Add(new object[] { "1", "1" });
    table.Rows.Add(new object[] { "1", "1" });
    table.Rows.Add(new object[] { "1", "1" });
    table.Rows.Add(new object[] { "1", "1" });

    foreach (DataRow row in table.Rows)
        Console.WriteLine(row["col2"].ToString());

    Console.WriteLine("***************************************");

    DataColumn dc = new DataColumn("col2");
    dc.DataType = typeof(int);
    dc.DefaultValue = 0;

    table.Columns.Remove("col2");
    table.Columns.Add(dc);

    foreach (DataRow row in table.Rows)
        Console.WriteLine(row["col2"].ToString());


    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)


Nis*_*tha 5

您可以在这里使用一个简单的技巧。删除行并将其重新添加到表中。

 dt.Columns.Remove("Value");
 dt.Columns.Add("Value", type(System.Int32), 0);
Run Code Online (Sandbox Code Playgroud)