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