【发布时间】:2014-03-06 10:41:14
【问题描述】:
我正在比较两个数据表并建立一个新表 我想对新表中的值进行排序,因为它具有 -ve 值(如果未转换为十进制,则不会考虑 -ve 符号) 我想将它从字符串转换为十进制类型并返回表格进行排序。我收到错误,因为输入字符串的格式不正确如何解决这个问题?并按 Asc 顺序对 -ve 值进行排序
private static DataTable CompareTwoDataTable(DataTable table1, DataTable table2)
{
DataTable table3 = new DataTable();
DataRow dr = null;
string filterExp = string.Empty;
for (int i = 0; i < table1.Rows.Count; i++)
{
string col = table1.Rows[i]["Parameter Name"].ToString();
if (table2.Columns.Contains(col))
{
if (!table3.Columns.Contains(col))
{
table3.Columns.Add(col, typeof(string));
filterExp = filterExp + col + " asc ,";
}
for (int j = 0; j < table2.Rows.Count; j++)
{
if (table3.Rows.Count != table2.Rows.Count)
{
dr = table3.NewRow();
table3.Rows.Add(dr);
}
table3.Rows[j][col] = (table2.Rows[j][col].ToString());
}
}
}
DataView dv = new DataView(table3);
filterExp = filterExp.TrimEnd(',');
dv.Sort = filterExp;
table3 = dv.ToTable();
return table3;
}
【问题讨论】:
-
table3.Rows[j][col] = (table2.Rows[j][col]);
-
table3.Columns.Add(col, typeof(double));
标签: c# sorting types datatable type-conversion