【问题标题】:Why does a number imported to SQL Server from Excel contain the letter e?为什么从 Excel 导入 SQL Server 的数字包含字母 e?
【发布时间】:2012-03-07 16:16:38
【问题描述】:

我有一个将数据插入 SQL Server 的 Excel 表,但注意到对于特定字段,数据是用 e 插入的,该特定字段的类型为 varchar,大小为 20。

当这些字段的实际数据为 54607677038、77200818179 和 9920996 时,为什么要插入 e。

帮帮我

感谢期待。

【问题讨论】:

  • 数据库中该列的数据类型?
  • 代码中有一个地方可以将double 转换为string,然后再将其插入数据库表。那是你需要看的地方。
  • 请扩展您的问题以包含以下详细信息:Excel 中的值是多少(我怀疑 Excel 将一长串数字视为数字)?你是如何从 Excel 插入 SqlServer 的?
  • @Thit varchar 大小为 50
  • @Hans 根据您的要求添加了详细信息

标签: sql-server excel import


【解决方案1】:

可能会认为“2007038971”只是一串数字(我猜是某种文章代码)。 Excel 只看到数字并将其视为数值。它可能是右对齐(数字默认)而不是左对齐(字符串默认)。

当被要求以字符串形式存储时,它会“帮助”将该数字格式化为字符串,从而引入“e”表示法(值 2007038971 约为 2.00704 * 10^9)。

您需要让 Excel 相信该代码确实是一个字符串,可能需要在其前面添加一个引号。

【讨论】:

    【解决方案2】:

    这个怎么样。当您从 excel 中读取值时,然后转换 ToString() 并插入 DB。需要根据你的excel中的数据更改相关的数据类型。

     double doub = 2.00704e+009;
     string val = doub.ToString();
    

    【讨论】:

    • 我只需要插入'e'的原因,而不是纠正它的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2019-02-19
    相关资源
    最近更新 更多