C# - 将 "uniqueidentifier"、 "timestamp"、 "image"、 "money"、 "sql_variant"等字符串转换为 .net 数据类型

标签 c# dbtype

如何转换字符串如"uniqueidentifier" , "timestamp" , "image" , "money" , "sql_variant"等到各自的 .net 数据类型?

我需要查询一个表以找出它包含的字段,然后将这些字段累积到一个列表中 List<Column> . Column是我写的一个类。所以我需要这个机制。

最佳答案

使用 ExecuteReader 对目标列运行查询以获取 SqlDataReader,然后使用 GetFieldType(返回 .NET 数据类型)和 GetDataTypeName(返回相应的 SQL 服务器类型名称)。实际类型映射是在 SqlClient 内部完成的 - 您可以使用反射来访问它,并希望它不会在 .NET 版本之间发生变化,但我不推荐它。

关于C# - 将 "uniqueidentifier"、 "timestamp"、 "image"、 "money"、 "sql_variant"等字符串转换为 .net 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747305/

相关文章:

c# - 未序列化的结构列表列表。 System.RuntimeType 由于其保护级别而无法访问。只能处理公共(public)类型

sql-server - 什么是 DBBINDSTATUS_UNSUPPORTEDCONVERSION

C#:DbType.String 与 DbType.AnsiString

c# - 可空 xml 列的 Linq to sql 错误 "Data at the root level is invalid "

c# - 如何使用当前文化信息获取货币格式并验证该货币

c# - 如何获取数据库的整个列并将其分配给单个按钮的文本?

c# - 在 C# 中读取/写入命令行程序

c# - Windows 窗体复选框已更改还是已更新?