包含子查询的视图不会在DataMember中显示

时间:2014-04-17 18:24:31

标签: c# data-binding datasource strongly-typed-dataset

在下图中,视图显示在DataSources中。

Data Source

在下图中,数据集设计视图中显示了相同的数据源 DataSet

在表单上拖放Same DataSource 之后,同一Grid的Grid DataMember 属性未在其列表中显示名称。
Data Members


网格属性
Grid Propery


绑定源的属性
enter image description here

<小时/> 视图脚本

ALTER View [dbo].[V_CustomerBalance] as
SELECT M.Sales_id,
       M.Sales_date, 
       M.Customer_id, 
       M.Total_Weight, 
       M.Total_Amount, 
       M.Is_fully_paid, 
       SP.New_SrNo, 
       SP.Total_Amount_Paid,
       (M.Total_Amount - SP.Total_Amount_Paid) AS Due_Amount
  FROM SalesMasterTable AS M ,
       (SELECT P.Sales_id, 
               MAX(P.Sr_no) + 1 AS New_SrNo, 
               SUM(P.Amount_paid) AS Total_Amount_Paid
          FROM SalesPaymentTable AS P
         GROUP BY P.Sales_id
        HAVING MIN(P.Amount_due) > 0) AS SP 
 WHERE M.Sales_id = SP.Sales_id
GO

<小时/> 我的问题是,数据源中存在的视图是否也存在于数据成员中。

我认为是的。 如果不是那么为什么?

1 个答案:

答案 0 :(得分:2)

有些时候回归基础会更简单。

首先,您的数据网格视图应该使用绑定源组件作为其数据源。

GridView的数据成员应该为空,只选择数据源(到绑定源)。

如果您按照以下步骤操作,您将使用sql视图获得网格视图的工作副本。

  1. 在解决方案中创建一个新的DataSet,并将View添加到其中。
  2. 打开网格所在的表单。
  3. 在数据集的上下文菜单中,将数据源设置为解决方案中键入的数据集。
  4. 这应该在您的表单上创建三个组件。

    1. DataSet Component。
    2. 附加到DataSet组件的BindingSource。
    3. 来自您的自定义表适配器在解决方案数据集中。
    4. 您的网格视图将其数据源附加到绑定源。绑定源DataSource将设置为表单中的DataSet Component,其DataMember将显示视图名称。 Gridview不应在DataMember属性上显示任何内容,因为它将从绑定源获取所有数据和信息。

      在您的代码中,您的binging源数据成员属性应设置为视图名称。

      我希望这会有所帮助。