我想导入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/