我正在使用ADO.NET。当我想在SQL中将数据保存到表时,我需要检索此表中的列信息。根据信息,我的意思是列最大尺寸(我想从nvarchar(10)
列获得NULL
)和NOT NULL
或var selectFromCmd = SqlCommandFactory.CreateCommand("select top 0 * from [dbo]." + destTableName, SqlConnection, SqlTransaction);
var dataAdapter = new SqlDataAdapter(selectFromCmd);
var destinationTable = new DataTable();
dataAdapter.Fill(destinationTable);
。
我正在使用下一个代码:
DataColumn
然后我这样得到var column = destinationTable.Columns["MyColumn"]
:
AllowDBNull
但true
总是MaxLength
-1
,和string
始终为setImage...
那么,如何在ADO.NET中获取有关列属性的正确信息?
答案 0 :(得分:4)
我宁愿使用sys cataloge视图来查询此查询。像这样......
SELECT c.name ColumnName
,t.Name Datatype
,c.max_length MaxLength
,c.is_nullable
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE c.object_id = object_id('Customers') --<-- your table name