Представление, содержащее подзапрос, не отображается в DataMember

На изображении ниже представление отображается в источниках данных.

Источник данных

На изображении ниже тот же источник данных показан в представлении конструктора набора данных
DataSet

После перетаскивания и удаление того же DataSource в форме, поскольку свойство Grid DataMember того же Grid не отображает имя в своем списке.
Элементы данных


Свойства сетки
Свойства сетки


Свойства источника привязки
введите здесь описание изображения


Сценарий представления

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


Моя проблема в том, должно ли представление, представленное в источнике данных, также присутствовать в элементе данных.

Я думаю, что это да. Если нет, то почему?


person Romesh    schedule 17.04.2014    source источник
comment
Вы создали представление после создания источника данных? Если это так, вы должны обновить источник данных.   -  person Hamlet Hakobyan    schedule 17.04.2014
comment
Делал тоже самое но не помогло.   -  person Romesh    schedule 17.04.2014
comment
Что вы установили в качестве источника данных datagrid?   -  person Hamlet Hakobyan    schedule 17.04.2014
comment
Когда я перетаскиваю, он автоматически создает новый источник привязки. Этот BindingSource является источником данных сетки. Источником данных этого источника привязки является типизированный набор данных. Элемент данных Bindingsource и Grid пуст.   -  person Romesh    schedule 17.04.2014
comment
Вы должны установить источник данных datagridview на BindingSource .   -  person Hamlet Hakobyan    schedule 17.04.2014
comment
Да уже есть. Я изменил свой вопрос и показал на изображении.   -  person Romesh    schedule 17.04.2014
comment
Почему вы устанавливаете источник данных для источника привязки на jvellKongdonDataSet?   -  person Hamlet Hakobyan    schedule 17.04.2014
comment
Автоматически принимает.   -  person Romesh    schedule 17.04.2014
comment
Я не вижу изображения, кто-нибудь может их увидеть?   -  person Bassam Alugili    schedule 25.04.2014
comment
Ромеш, тебе все еще нужна помощь?   -  person dmportella    schedule 25.04.2014
comment
@dmportella Я еще не пробовал твое решение, но обязательно проверю это. Спасибо   -  person Romesh    schedule 26.04.2014


Ответы (1)


Иногда проще вернуться к основам.

Во-первых, ваше представление сетки данных должно использовать в качестве источника данных компонент источника привязки.

Элемент данных GridView должен быть пустым с выбранным только источником данных (для источника привязки).

Если вы выполните следующие шаги, вы получите рабочую копию представления сетки с использованием представления sql.

  1. Создайте новый набор данных в решении и добавьте в него свое представление.
  2. Откройте форму, в которой находится ваша сетка.
  3. В контекстном меню для набора данных задайте в качестве источника данных типизированный набор данных в вашем решении.

Это должно создать три компонента в вашей форме.

  1. Компонент набора данных.
  2. BindingSource, прикрепленный к вашему компоненту DataSet.
  3. Пользовательский адаптер таблицы, полученный из набора данных In Solution.

Источник данных вашего представления сетки будет привязан к источнику привязки. Источник привязки DataSource будет установлен на компонент DataSet в форме, а его DataMember будет отображать имя представления. Gridview не должен ничего отображать в свойстве DataMember, поскольку он будет получать все данные и информацию из источника привязки.

В вашем коде для свойства члена исходных данных binging должно быть задано имя представления.

Надеюсь, это поможет.

person dmportella    schedule 22.04.2014