Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > New query for datagridview


Автор: klein 4.4.2010, 16:04
Всем доброго времени.
Создал SQL таблицу, нужно выводить в датагридвью запросы. Создаю новый запрос через Query builder. Сам запрос в редакторе функционируєт. При добавлении запроса выводит диалог с сообщением "The schema returned by the new query differs from the base query." Менял формат датагридвью (оставлял только колонки задействованные в запросе) , но безрезультатно. Не пойму в чем дело. 

Автор: jonie 4.4.2010, 16:21
пример проекта с воспроизведением ошибки выложите, так посмотрим что у вас не так

Автор: klein 4.4.2010, 18:02
Проэкт еще собственно пуст. Вложен DataSet c  одной таблицей. В главную форму всталяю DataGridView, выбираю в таск диалоге датасорс, основные параметры , а потом Add Query -> New Query name-> Query Builder . Там создаю запрос :
Код


SELECT        Article, Name, Exist, Recomended_price, Credit, Credit_date, Customer, Number_of_transaction
FROM           Table1
WHERE        (Exist = 1) AND (Recomended_price BETWEEN 0 AND 3000)
ORDER BY    Recomended_price


 При попытке запрос сохранить выдает сообщение о несовпадении схемы вывода с базовым запросом.

Может я не правильно выбрал контрол для вывода (вдальнейшем редактирования и ввода) инфы с\в Data Connections ? Может ReportViewer ?

Автор: klein 4.4.2010, 18:37
Удалось создать новый запрос ForSaler() 
Код

SELECT        Number, Article, Name, Exist, Reserv, Debet, Debet_date, Provider, Recomended_price, Credit, Credit_date, Customer, Profit, Basket_number, 
                         Reserv_customer, Reserv_customer_phone, Number_of_transaction
FROM            Table1
WHERE        (Exist = 1) AND (Reserv <> 1)

 Наверно проблема в том что я пытался вывести не все колонки, а в датагриде их больше. Но при подгонке датагрида под эти колонки тоже самое. Или я чтото не так делаю. Решил найти созданую функцию ForSaler() .
Код

public virtual int ForSaler(DBNameDataSet1.Table1DataTable dataTable) 
        {
            this.Adapter.SelectCommand = this.CommandCollection[5];
            if ((this.ClearBeforeFill == true)) 
            {
                dataTable.Clear();
            }
            int returnValue = this.Adapter.Fill(dataTable);
            return returnValue;
        }

Может лучше создавать ее вручную ? Только я не пойму где в этой функции хранится ескьюеловский запрос, и как его "запрашивать"  smile .

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)