【发布时间】:2015-08-20 09:04:01
【问题描述】:
我想导入 csv 文件来访问数据库,大部分数据是一个“长”数字。 问题是那些“长”数字转换为科学记数法。 在csv中说的是90049699515564500,导入后访问是9.00496995155646E+16
access 数据库 table1 我确实设置了所有列日期类型:文本,字段大小:255
这是 csv
colA,colB,colC
123123,123123,123123
90049699515564500,123123,123123
这是导入后的访问table1结果
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();
}
}
知道如何将“长”数字保存为字符串/文本吗?
【问题讨论】:
-
我使用 SELECT Format(colA,\"#######################\") 作为 colA、colB、colC。但是,这里又来了一个问题,数字太长时数字错误,转换错误。 csv:8610592400381810,访问:8610592400381820.csv:90049699515564500,访问:90049699515564600