2013-02-26 29 views
1

當我運行下面的查詢(從C#代碼到SQL Server連接):我如何區分.net與查詢中未命名的列?

select GetDate() Named, GetDate() Column2, Getdate(), getdate(), getdate() Named 

結果DataTable中有如下因素列:命名,列2,列1,欄3,Named1 有沒有辦法知道來自.NET的Column1 & Column3在查詢中未命名?

運行在Management Studio中相同的查詢從選擇顯示的確切名稱:用於列1 &欄3未命名的列,而不是命名Named1

注:只是爲了這個明確的 - SQL查詢是不問題 - 問題是如何獲取服務器返回的正確模式。

+0

如在黑暗中拍攝,我會說:如果你有一個SqlDataAdapter,您可以嘗試在其使用TableMappings集合來看看你的表中的映射。全 - 然後,對於每個thisTableMapping的ColumnMappings的,比較與SourceColumnProperty的DataSetColumn財產(GetDataColumnBySchemaAction也可能是有趣的)希望這將有助於 – jbl 2013-02-26 11:59:07

+0

@jbl如果我定義映射表我需要預先知道列是什麼點是如何正確檢測服務器發送給我的信息 – 2013-02-26 22:21:20

+0

好像這些信息嵌套在SlqCommand.MetaData._metaDataArray裏面(用調試器看看)這些屬性是內部/私有的,恐怕只有反射會幫助你去這些信息 – jbl 2013-03-01 09:37:53

回答

2

我會建議添加別名使用AS關鍵字每一列,所以這將是從數據表中訪問數據沒有問題。

+0

我沒有任何問題訪問數據 - 我有從服務器返回時發現模式的問題 - 我知道這可以做到,因爲管理控制檯是.net應用程序可以正確執行 – 2013-02-26 22:22:42