【问题标题】:How to Get correct DataColumn Properties from DB如何从 DB 中获取正确的 DataColumn 属性
【发布时间】:2016-09-29 14:20:41
【问题描述】:

我正在使用 ADO.NET。当我想在 SQL 中将数据保存到表时,我需要检索该表中的列信息。信息是指列最大大小(我想从nvarchar(10) 列中获取10)和NULLNOT 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

那么,如何才能在 ADO.NET 中获取有关列属性的正确信息?

【问题讨论】:

标签: c# sql-server ado.net


【解决方案1】:

我宁愿为此查询使用 sys 目录视图。像这样的......

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-10-12
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多