有没有有用的方法来检查平台之间的数据类型

时间:2019-09-16 13:11:57

标签: .net sql-server vb.net

我正在做一个数据导入器项目,该项目使用OLEDB从中获取Excel数据,然后我们需要通过VB.NET项目将其推入SQL SERVER后端db。导入者的用户定义哪些源字段进入哪个目标字段。

因此,我们可以从(Destination)nvarchar字段的下拉菜单中选择一个(Source)VB.NET [System.String]类型,这一切都可以正常工作。问题是没有什么可以阻止用户执行诸如选择(源)VB.NET [System.DateTime]字段并将其放在Destination nvarchar字段中的操作。这项工作有很多要做。我想知道是否有人对最佳方法有个好主意。我想我想避免手动键入很多IF语句。我认为.NET中可能已经有一些东西可以处理此过程。

1 个答案:

答案 0 :(得分:1)

对于大多数繁重的工作,您可以依靠SQL Server的隐式类型转换,仅在没有适当的类型转换或需要特殊逻辑处理的情况下,才在.NET中执行显式映射和转换。 Excel数据中的异常。

请注意,SQL Server如何支持从NVARCHAR到几乎所有其他类型的隐式copnversions。这样的形式的命令

insert into [t] (a,b,c,d) values (@a,@b,@c,@d)

使用NVARCHAR参数通常会“正常工作”。

下图显示了SQL Server系统提供的数据类型所允许的所有显式和隐式数据类型转换。

enter image description here