2017-04-17 236 views
-1

我一直在使用視圖表,當我想添加視圖表中的一列,我一直在使用SQL管理工作室手動添加。 (腳本視圖爲 - > ALTER到 - >新查詢編輯器窗口)如何在視圖表中添加列?

但是,我必須添加視圖表中的新列沒有SQL管理工作室。 因爲它必須向我們的客戶提供有關在我們的程序中自動添加新列的信息。

所以,我想知道如何檢查C#庫上存在的視圖表名稱和列。 而且,如何在c#庫上的現有視圖表中添加新列。

ALTER VIEW [dbo].[PackOrderRefV] 
AS 

SELECT 
    ISNULL(G.PrescriptionValue, '') AS BirthDay 
, ISNULL(H.PrescriptionValue, '') AS DoctorName 
FROM 
    PackOrderPouch A 
    LEFT OUTER JOIN PrescriptionDetail G ON A.PrescriptionID = G.PrescriptionID AND G.OCSFormatItemID = 6 --PatientBirthDay 
    LEFT OUTER JOIN PrescriptionDetail H ON A.PrescriptionID = H.PrescriptionID AND H.OCSFormatItemID = 9 --DoctorName 
GO 

例如) 當我有上面的腳本,我需要在C#代碼添加了「患者姓名」。 請參考下面的代碼。

, ISNULL(I.PrescriptionValue, '') AS PatientName --Select 

LEFT OUTER JOIN PrescriptionDetail I ON A.PrescriptionID = I.PrescriptionID AND I.OCSFormatItemID = 15 --PatientName -- Join 

回答

0

如果我理解正確,您嘗試通過更改VIEW定義向用戶提供動態列選擇。雖然可以,但我會建議將列選擇轉移到C#代碼。這有幾個原因,但很明顯的一點是,更改VIEW對象會動態影響所有數據庫用戶。 因此,您的VIEW PackOrderRefV應該包含可以添加的所有字段。接下來,在您的代碼中,您可以在此VIEW上實例化DataTable。在此之後,有幾種方法可以選擇某些字段。例如,您可以在DataTable上創建DataView,然後使用ToTable(string,bool,string [])方法將此DataView轉換爲僅包含所需字段的另一個DataTable。 Final DataTable可以鏈接到DataGridView或任何其他可限制的GUI控件。