2016-05-31 124 views
0

我正在使用ADO.NET。當我想將數據保存到SQL表中時,我需要檢索此表中的列信息。通過信息我的意思是列最大尺寸(我想從nvarchar(10)欄獲得10)和NULLNOT NULL。 我使用下面的代碼: 如何從數據庫中獲取正確的DataColumn屬性

​​

然後我得到DataColumn像這樣:

var column = destinationTable.Columns["MyColumn"] 

AllowDBNull總是true

MaxLength總是-1即使此列string

那麼,如何才能在ADO.NET中獲得有關列屬性的正確信息?

+0

你爲什麼不嘗試選擇數據庫表架構。這裏有一些例子,如果它沒有幫助,那麼谷歌是找到你正在尋找的東西的下一個最好的東西[GetSchema Method](http://stackoverflow.com/questions/4834592/how-can-i-determine -in-c-sharp-a-sql-server-database-column-is-autoincre) – MethodMan

+0

看看http://stackoverflow.com/questions/173834/ado-net-getting-the-schema-for-一張桌 – Avitus

回答

4

我寧願使用此查詢的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 
+0

這套房最適合我。謝謝。 –

+0

對於懶惰的整個C#代碼:https://gist.github.com/vkurkotov/9264c5e484c9456f4c8149fd1e4c256c –

相關問題