gpt4 book ai didi

c# - 如何使用 ADO.NET 获取表中列的 SqlDbType?

转载 作者:太空狗 更新时间:2023-10-29 20:49:05 25 4
gpt4 key购买 nike

我试图在运行时确定 sql server 表列的 SqlDbType 是什么。

在 System.Data.SqlClient 中是否有可以执行此操作的类,还是我应该自己进行映射?我可以从

返回一个字符串表示
SELECT DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = '{0}' AND TABLE_SCHEMA = '{1}'
AND TABLE_NAME = '{2}' AND COLUMN_NAME = '{3}'

编辑:我不能使用 SMO,因为我无法控制正在执行的机器,所以我不能保证它会被安装。 (抱歉没有说清楚 rp)。

编辑:作为对 Joel 的回答,我正在尝试创建一个我可以调用的函数,当传递 SqlConnection、表名和列名时,它将返回一个 SqlDBType。

最佳答案

在 SQL Server 中,您可以使用 FMTONLY 选项。它允许您在不获取任何数据的情况下运行查询,只返回列。

SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SET FMTONLY ON; select column from table; SET FMTONLY OFF";
SqlDataReader reader = cmd.ExecuteReader();
SqlDbType type = (SqlDbType)(int)reader.GetSchemaTable().Rows[0]["ProviderType"];

关于c# - 如何使用 ADO.NET 获取表中列的 SqlDbType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com