如何从DB获取正确的DataColumn属性

时间:2016-05-31 14:02:54

标签: c# sql-server ado.net

我正在使用ADO.NET。当我想在SQL中将数据保存到表时,我需要检索此表中的列信息。根据信息,我的意思是列最大尺寸(我想从nvarchar(10)列获得NULL)和NOT NULLvar 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中获取有关列属性的正确信息?

1 个答案:

答案 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