【问题标题】:changing Datatype of DataTable using decimal使用十进制更改 DataTable 的数据类型
【发布时间】: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


【解决方案1】:

`

    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]["Par Name"].ToString();
            if (table2.Columns.Contains(col))
            {
                if (!table3.Columns.Contains(col))
                {
                    table3.Columns.Add(col, typeof(double));
                    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];
                }


            }


        }

`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-09
    • 2014-10-17
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2011-08-20
    • 2021-08-09
    • 2014-12-24
    相关资源
    最近更新 更多