WOP*_*OPR 6 .net c# sql-server ado.net
我试图在运行时确定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}'
Run Code Online (Sandbox Code Playgroud)
编辑:我不能使用SMO,因为我无法控制执行机器,所以我不能保证它将被安装.(抱歉没有说清楚rp).
编辑:回答Joel,我正在尝试创建一个我可以调用的函数,它会在传递SqlConnection,表名和列名时返回一个SqlDBType.
Ada*_*uth 16
在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"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11317 次 |
| 最近记录: |