我想将一个数据表的col值分配给同一个数据表的另一个col 像:
objdt.Rows[i]["mr_discrepancy_cd1s"].ToString()=objdt.Rows[i["mr_discrepancy_cd1"].ToString();
我怎么能这样做?
答案 0 :(得分:1)
我们可以使用Ordinal属性从DataTable
中的列中获取索引,我们可以按如下方式替换值:
objdt.Rows[i][objdt.Columns["ColumnName"].Ordinal] = objdt.Rows[i][objdt.Columns["ColumnName"].Ordinal]
或
objdt.Rows[i][objdt.Columns[objdt.Columns[1].ColumnName].Ordinal] =
objdt.Rows[i][objdt.Columns[objdt.Columns[2].ColumnName].Ordinal]
答案 1 :(得分:0)
试试这个
objdt.Rows[i]["mr_discrepancy_cd1s"] =objdt.Rows[i]["mr_discrepancy_cd1"];
答案 2 :(得分:0)
不要使用ToString
,它会将每个值转换为字符串,即使它之前不是字符串。这将改变类型,甚至可以更改数据。如果数据行中的列为null
,它也会爆炸。
而是使用强类型Field
extension method,它也支持nullables。
假设在这种情况下它确实是string
:
DataRow row = objdt.Rows[i];
string mr_discrepancy_cd1 = row.Field<string>("mr_discrepancy_cd1");
row.SetField("mr_discrepancy_cd1s", mr_discrepancy_cd1);