如何将一个数据列的值复制到同一数据表C#中的另一个数据列中?
我想将数据表的如何将一个数据列的值复制到同一数据表C#中的另一个数据列中?,c#,datatable,C#,Datatable,我想将数据表的itemarray[4]复制到该数据表的itemarray[6]。我使用了此代码,但没有看到任何更改: foreach (DataRow dr_row in dt_table.Rows) { foreach (var field_value in dr_row.ItemArray) { object cell_data = field_value; if (dr_row.ItemArray[6].ToString() == "")
itemarray[4]
复制到该数据表的itemarray[6]
。我使用了此代码,但没有看到任何更改:
foreach (DataRow dr_row in dt_table.Rows)
{
foreach (var field_value in dr_row.ItemArray)
{
object cell_data = field_value;
if (dr_row.ItemArray[6].ToString() == "")
{
dr_row.ItemArray[6] = dr_row.ItemArray[4];
}
original_data += cell_data.ToString();
}
original_data += Environment.NewLine;
}
试试这个
foreach (DataRow dr_row in dt_table.Rows)
{
dr_row[6] = dr_row[4];
}
并使用System.Text.StringBuilder
附加数据
System.Text.StringBuilder sb = new StringBuilder();
sb.Append(value1);
首先,不要这样做:
dr_row.ItemArray[6].ToString() == ""
将其更改为:
dr_row.ItemArray[6].ToString() == String.Empty
或:
然而,这只是一种良好的做法。现在,谈谈你面临的问题
Itemarray
所做的是,它从行中创建一个新数组,这样,如果更改数组,就不会更改行
这样做:
dr_row[6] = dr_row[4];
应该有效。为什么你永远都不应该这样做==“”?主要原因是可读性,但你可以对此争论。第二个原因是,当在程序集中使用“”或“”作为字符串对象时,如果在代码的每一部分中使用“”,它仍然是同一个对象,那么如果字符串对象中有一个静态对象,该如何创建新对象呢?
dr_row[6] = dr_row[4];