【问题标题】:View Containing Subquery doesn't show in DataMember包含子查询的视图不显示在 DataMember 中
【发布时间】:2014-06-02 04:02:28
【问题描述】:

在下图中,数据源中显示了一个视图。

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


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


网格属性


绑定源的属性


视图的脚本是
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


我的问题是,数据源中存在的视图是否也应该存在于数据成员中。

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

【问题讨论】:

  • 创建数据源后是否创建了视图?如果是这样,您必须刷新数据源。
  • 做了同样的事但没有帮助。
  • 你设置了什么datagrid数据源?
  • 当我拖放时,它会自动创建一个新的绑定源。该 BindingSource 是网格的 DataSource。该 bindingsource 的 DataSource 是 Typed DataSet。 Bindingsource 和 Grid 的数据成员为空。
  • 必须将datagridview的数据源设置为BindingSource。

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


【解决方案1】:

有时回归基础更简单。

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

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

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

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

这应该在您的表单上创建三个组件。

  1. 数据集组件。
  2. 附加到 DataSet 组件的 BindingSource。
  3. 来自您在解决方案数据集中的自定义表适配器。

您的网格视图会将其数据源附加到绑定源。绑定源 DataSource 将设置为表单中的 DataSet 组件,其 DataMember 将显示视图名称。 Gridview 不应在 DataMember 属性上显示任何内容,因为它将从绑定源获取所有数据和信息。

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

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 2014-06-21
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多