我想导入csv文件来访问数据库,大多数数据都是“长”的。数。 问题是那些“漫长的'数字转换为科学记数法。 在csv中说是90049699515564500,导入到访问后是9.00496995155646E + 16
访问数据库table1我确实设置了所有列日期类型:文本,字段大小:255
这是csv
可乐,COLB,COLC
123123,123123,123123
90049699515564500 下,123123,123123
这是导入后的访问表1结果
可乐,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();
}
}
任何想法我怎样才能保存“长”字样?数字为字符串/文字?
答案 0 :(得分:3)
尝试使用CDec:
string strQryCommand = "INSERT INTO table1 "
+ "SELECT CDec(colA), colB, colC "
+ @"FROM [Text;FMT=Delimited;HDR=YES;Database=C:\someDir].[file.csv]";
或在读取数据时使用CDec转换数据。
答案 1 :(得分:1)
强制转换格式:
SELECT Format(colA,\"0000000000000000\") as colA, colB, colC
答案 2 :(得分:0)
在设计视图中打开表格。选择该字段并将格式设置为标准。无需额外操作数据。
答案 3 :(得分:0)
确定。我尝试了这里建议的所有方法。但没有人真正解决我的问题,使用Ole DB查询导入csv数字更多16位数。这是两种替代解决方案,