我有一个页面,允许用户上载的Excel文件,并插入Excel中的数据文件到SQL Server。现在我有一个小问题都会被忽略的是,有是excel文件中的一列,如“001”,“029”,“236”等,当插入到SQL Server时,前面的零会在SQL中被忽略,所以数据会变成“1” “29”,“239”SQL中列的数据类型是varchar(10)。如何解决这个问题?整数零,“0' 时,上传到SQL Server
回答
东西必须将excel单元格中的数据从字符串转换为整数。您执行插入?
我从来没有把它转换成整数! – 2009-07-17 03:34:03
也许你并没有意识到它。 – 2009-07-17 13:48:04
可能建立一个Excel单元格将有助于数据类型“文本”。
不能!如果将excel单元格中的数据类型更改为“text”,则前面的零将在excel文件中删除。 – 2009-07-17 03:49:52
Excel似乎自动将单元格值转换为数字。在处理之前,请在Excel工作表中尝试用单引号将单元格内容前缀。例如'001
。如果您不能相信用户这样做,请使用字符串格式化例程来为零填充数字。
如果用户输入001到Excel,它会被转换为数字1
如果用户输入“001到Excel,它将被保存在单元为文本。
如果细胞是预格式化的数字格式“@”,然后当用户输入001进入细胞,将被输入作为文本“001”。 “@”数字格式告诉Excel单元格是一个文本单元格,任何条目(不管它看起来像一个数字,日期,时间,分数等等)应该简单地放置在单元格中 - 作为文本细胞。
你可以告诉你的用户预格式化此列以“@”?这通常是处理这种情况的最可靠的方式,因为用户不必记住输入'001'。
Excel可能是这里的罪魁祸首。尝试将您的文件转换为CSV并查看它是如何发布的。如果前导零在新的CSV文件中消失,Excel就是问题所在。
Excel中始终做到这一点,它的一个nuissance。有三种解决方法,我知道的:
在Excel中的任何单元格中输入的数据格式的单元格作为文本之前,如果你控制了电子表格和用户(您可以根据需要做一整列)。这只能,这基本上从来没有:-)。
假设您会在Excel数据中混合使用数字和/或文本,并在导入之前在Excel中对其进行修复:向电子表格添加一列并使用TEXT()函数将数字转换为文本,如in = TEXT(A2,“000”);填满。还假定您可以编辑工作表。
假设你有定出插入数字在你的代码。根据你如何加载数据,这可能发生在T-SQL或其他代码中。在TSQL中,这个表达式的作用是用零填充3个字符的宽度:right('000'+ cast(2 as varchar(3)),3)
- 1. 上传多行记录到SQL Server
- 2. 将文件上传到SQL Server
- 3. 上传图像到SQL Server 2008
- 4. 将PDF文档上传到SQL Server
- 5. SQL Server:只修整前导零的函数
- 6. 请帮我用0存储整数值在SQL Server perfix
- 7. 本地SQL Server 2008 Express数据上传到基于Web的SQL Server 2008
- 8. SSIS - 从SQL Server 2000到SQL Server 2012的数据传输
- 9. 将sql server 2000数据库传输到sql server 2008
- 10. 将数据库从SQL-Server 2005传输到SQL-Server 2008
- 11. SUM(时间(0))在SQL Server中
- 12. 从SQL Server到PostgreSQL的数据传输
- 13. 将数据从SQL Server传输到MySQL
- 14. 将Foxpro数据库传输到SQL Server
- 15. SQL Server整数格式化
- 16. 如何转换时间到SQL Server中的整数
- 17. 压缩文件到字节上传到SQL Server
- 18. 传递“从C#到SQL Server
- 19. 使用MVC将图片上传到SQL Server数据库
- 20. SQL Server 2005的图片上传到数据库
- 21. 从.csv上传批量数据到SQL Server 2008
- 22. Winforms:如何上传图片到SQL Server数据库使用C#
- 23. Excel工作表上传到SQL Server数据库
- 24. 将SQL Server数据库上传到Web服务器时的开始位置
- 25. SQL Server数据传输
- 26. asp.net mvs ASPNETDB - 上传sql server到托管站点
- 27. 使用ASP.Net MVC将图像上传到SQL Server 2005?
- 28. 选项(maxrecursion 0)SQL Server
- 29. SQL Server DateTime2(0)与日期
你用什么方法获取你的Excel数据到SQL Server中? SSIS? DTS?批量加载?通过ASP脚本? SQL Server的什么版本的Excel?您在问题中显示的Excel数字的最大“文本”值是多少?是否有可能有一个前面为零的10个字符的数字?如果你想在前面加一个零,你想要填充多少个字符?对不起,问这么多问题,只是想让你更接近解决方案... – Taptronic 2009-07-17 04:04:50