如何在视图表中添加列?

时间:2017-04-17 02:32:40

标签: c# sql-server wpf

我一直在使用视图表,当我想在视图表中添加其中一列时,我一直在使用SQL管理工作室手动添加。 (脚本视图为 - > ALTER为 - >新查询编辑器窗口)

但是,我必须在没有SQL管理工作室的视图表中添加新列。 因为它必须向我们的客户提供在我们的程序中自动添加新列。

所以,我想知道如何检查C#base上存在的视图表名和列。 并且,如何在c#base上的现有视图表中添加新列。

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

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您正尝试通过更改VIEW定义为用户提供动态列选择。虽然可行但我建议将列选择转移到C#代码。这有几个原因,但显而易见的是,更改VIEW对象会动态影响所有数据库用户。 因此,您的VIEW PackOrderRefV 应包含可添加的所有字段。接下来,在您的代码中,您可以在此VIEW上实例化DataTable。在此之后,有几种方法可以选择一些字段。例如,您可以在DataTable上创建DataView,然后将此DataView与ToTable(string,bool,string [])方法转换为仅包含所需字段的另一个DataTable。最终DataTable可以链接到DataGridView或任何其他可绑定的GUI控件。