c# - 包含子查询的 View 未显示在 DataMember 中

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

在下图中,数据源中显示了 View 。

Data Source

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

将相同的 DataSource 拖放到表单上作为网格后,同一网格的 DataMember 属性不会在其列表中显示名称。
Data Members


网格的属性
Grid Propery


绑定(bind)源的属性
enter image description here


View 的脚本是

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


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

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

最佳答案

有时回到基础更简单。

首先,您的数据 GridView 应该使用绑定(bind)源组件作为其数据源。

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

如果您按照以下步骤操作,您将获得使用 SQL View 的 GridView 的工作副本。

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

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

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

您的 GridView 将其数据源附加到绑定(bind)源。绑定(bind)源数据源将设置为表单中的数据集组件,其数据成员将显示 View 名称。 Gridview 不应在 DataMember 属性上显示任何内容,因为它将从绑定(bind)源获取所有数据和信息。

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

我希望这会有所帮助。

关于c# - 包含子查询的 View 未显示在 DataMember 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140655/

相关文章:

java - 在 Java 中删除 json 中的节点

c# - 我可以在 GridView ItemTemplate 中使用 IF 语句吗?

php - CakePHP 2.x - 动态切换数据库(针对整个应用程序)

Grails Connections 在集成测试中表现非常不同

java - SpEL @ConditionalOnProperty 字符串属性为空或 null

c# - 如何在 C# ApiController 中发送字节数组

c# - 控制 LTR 和 RTL 语言之间的对齐切换

c# - RouteExistingFiles 不再是 asp.net 5 的一部分了吗?

c# - 仅在生命周期匹配时解析组件

c# - 对 ListView 和 DataContext 的一些不满