输入字符串的格式不正确。无法存储<>在专栏中。预计Int64

时间:2015-12-15 17:02:10

标签: c#

这里我试图得到逗号分隔值。在以下代码" tbl" 是包含逗号分隔值的表。

 private static DataTable PivotFieldData(DataTable tbl)
    {
        var tblPivot = new DataTable();
        if (tbl.Columns.Count > 0)
        {
            tblPivot.Columns.Add(tbl.Columns[0].ColumnName, typeof(int));
            for (int i = 0; i < tbl.Rows.Count; i++)
            {
                tblPivot.Columns.Add(Convert.ToString(tbl.Rows[i][1]), typeof(long));
            }
            var r = tblPivot.NewRow();
            r[0] = tbl.Rows[0][0].ToString();
            for (int col = 0; col < tbl.Rows.Count; col++)
            {
                r[col + 1] = tbl.Rows[col][2].ToString();
            }
            tblPivot.Rows.Add(r);
        }
        return tblPivot;
    }

但我收到的错误如下。

this is the error displayed when i am displaying the table values in a gridview format as

我试过像

r[col + 1] = tbl.Rows[col][2].ToString().Trim() == "" ? 0 : Convert.ToInt64(tbl.Rows[col][2].ToString());

但是我收到输入字符串格式不正确的错误.... 请检查并帮助我...谢谢..

1 个答案:

答案 0 :(得分:3)

错误信息非常清楚。您有一个字符串值(即-2312,77,845.00),并且您尝试将其存储到typeof(long)的列中。如果该字符串值表示数字,则删除逗号并删除循环内的ToString调用。如果它表示一个字符串(它似乎是因为列位于错误的位置,因为它是一个数字),然后更改列类型。