我想导入csv文件以访问数据库,大多数数据是“长”数字。
问题是那些“长”数转换为科学计数法。
在csv中表示为90049699515564500,在导入访问后为9.00496995155646E + 16

访问数据库table1我确实设置了所有列日期类型:文本,字段大小:255

这是CSV
colA,colB,colC
123123,123123,123123
90049699515564500,123123,123123

这是导入后的访问表1结果
colA,colB,colC
123123,123123,123123
9.00496995155646E + 16,123123,123123

这是C#代码

string strQryCommand = "INSERT INTO table1 "
                     +  "SELECT colA, colB, colC "
                     + @"FROM [Text;FMT=Delimited;HDR=YES;Database=C:\someDir].[file.csv]";

using (OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessDatabase"].ConnectionString))
{
    using (OleDbCommand cmd = new OleDbCommand())
    {
        cmd.Connection = conn;
        cmd.CommandText = strQryCommand;
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
    }
}


知道如何将'long'数字保存为字符串/文本吗?

最佳答案

尝试使用CDec:

string strQryCommand = "INSERT INTO table1 "
                     +  "SELECT CDec(colA), colB, colC "
                     + @"FROM [Text;FMT=Delimited;HDR=YES;Database=C:\someDir].[file.csv]";


或在导入后使用CDec转换导入后的数据。

关于c# - 从csv导入长号到 Access ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30666085/

10-11 01:34