Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Kot_Mefodiy
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
1

Привзяка DropDownList к SqlDataSource внутри GridView

07.12.2011, 23:11. Просмотров 1265. Ответов 6
Метки нет (Все метки)

Добрый день! Прошу Вашей помощи.
Есть GridView, привязанный к SqlDataSource "Tovar". По событию Edit создается DropDownList, который привязан к другому источнику данных - "SizeS" и забирает оттуда
значения text и value.
Проблема в следующем: в режиме редактирования выбираю любое значение в DropDownList, нажимаю Update и вылетает ошибка:
Exception Details: System.Data.OleDb.OleDbException: Отсутствует значение для одного или нескольких требуемых параметров.

В чем может быть проблема? Голову сломал...

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

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" CssClass="maintable" DataSourceID="Tovar" 
        AutoGenerateColumns="False" DataKeyNames="Код">
        <Columns>
            <asp:CommandField ShowEditButton="True" EditText="Править" 
                CancelText="Отмена" UpdateText="OK" />
            <asp:BoundField DataField="Код" HeaderText="Код" ReadOnly="True" />
            <asp:BoundField DataField="Наименование" HeaderText="Наименование" />
            <asp:BoundField DataField="Бренд" HeaderText="Бренд" />
 
            <asp:TemplateField HeaderText="Размер">
            <EditItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server"
                            DataSourceID="SizeS" DataTextField="SIZE" DataValueField="VAL" AutoPostBack="True">
                            </asp:DropDownList>
                            <asp:SqlDataSource ID="SizeS" runat="server" 
                                ConnectionString="<%$ ConnectionStrings:MainString %>" 
                                ProviderName="<%$ ConnectionStrings:MainString.ProviderName %>" 
                                SelectCommand="SELECT DISTINCT Diler AS VAL, CASE WHEN Diler = 0 THEN 'Крупный' WHEN Diler = 1 THEN 'Средний' WHEN Diler = 2 THEN 'Малый' END AS SIZE FR OM VidProdukcii WHERE (Diler IS NOT NULL) ORDER BY Diler">
                            </asp:SqlDataSource>
            </EditItemTemplate>
            <ItemTemplate>
            <asp:Label ID="LabelR" runat="server" Text='<%# Bind("Размер")%>'></asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
 
            <asp:BoundField DataField="Комм код" HeaderText="Комм код" />
            <asp:CheckBoxField DataField="Активно" HeaderText="Активно" />
            <asp:BoundField DataField="Вес" HeaderText="Вес" />
            <asp:CheckBoxField DataField="Номера" HeaderText="Номера" />
            <asp:BoundField DataField="Цена" HeaderText="Цена" />
            <asp:BoundField DataField="Цена $" HeaderText="Цена $" ReadOnly="True" />
            <asp:BoundField DataField="Мин нац" HeaderText="Мин нац" />
            <asp:BoundField DataField="К эласт" HeaderText="К эласт" />
            <asp:BoundField DataField="Цена розн $" HeaderText="Цена розн $" />
            <asp:BoundField DataField="Цена розн" HeaderText="Цена розн" />
 
        </Columns>
    </asp:GridView>
    
        <asp:SqlDataSource ID="Tovar" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MainString %>" 
        ProviderName="<%$ ConnectionStrings:MainString.ProviderName %>" 
    
        SelectCommand="SELECT Nomer AS Код, Naimenovanie AS Наименование, NomerVKad AS 'Бренд', CASE WHEN Diler = 0 THEN 'Крупный' WHEN Diler = 1 THEN 'Средний' WHEN Diler = 2 THEN 'Малый' END AS 'Размер', Schet40 AS 'Комм код', Osobennost AS Активно, Tarif AS Вес, NomernoyUchet AS Номера, CAST(Cena AS numeric(10 , 2)) AS 'Цена', CAST(CenaUE AS numeric(10 , 2)) AS 'Цена $', MinNac AS 'Мин нац', CAST(KofElast AS numeric(10 , 2)) AS 'К эласт', CAST(CenaRoznUE AS numeric(10 , 2)) AS 'Цена розн $', CAST(CenaRozn AS numeric(10 , 2)) AS 'Цена розн', CAST(CenaRoznOld AS numeric(10 , 2)) AS 'Цена р стар', CAST(CenaRoznDeist AS numeric(10 , 2)) AS 'Цена р действ', Garantia AS Гарантия, Opt AS 'Срок поставки', Diler AS 'Знач' FR OM VidProdukcii1 WHERE (KodCif = ?) ORDER BY Naimenovanie" 
    
        
        UpdateCommand="UPDATE VidProdukcii1 SET Naimenovanie = ?, NomerVKad = ?, Diler = ?, Schet40 = ?, Osobennost = ?, Tarif = ?, NomernoyUchet = ?, Cena = ?, CenaUE = ?, MinNac = ?, KofElast = ?, CenaRoznUE = ?, CenaRozn = ? WH ERE (Nomer = ?)" >
        <SelectParameters>
            <asp:ControlParameter ControlID="Type" Name="KodCif" 
                PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
 
    </asp:SqlDataSource>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 23:11
Ответы с готовыми решениями:

GridView/SqlDataSource: не хочет работать процедура обновления
Добрый день! Вчера целый день потратил и так и нечего решил. Обновления через ХП не хочет работать....

Изменение данных в GridView при изменении строки запроса в SqlDataSource
Доброго времени суток Возникла проблема с GridView и SqlDataSource: когда привязываю GridView к...

GridView и dropdownlist
Есть гридвью привязаный через linqdatasours хочу чтоб при редактирование был dropdownlist вместо...

DropDownList + GridView
Доброго времени суток! У меня такой вопрос, как сделать так, чтобы вернув исходное значение в...

GridView + DropDownList
Здравствуйте! Я хочу с помощью DropDownList выбирать из базы данных название таблиц и посылать их...

6
sau
2060 / 1647 / 278
Регистрация: 22.07.2011
Сообщений: 6,278
Завершенные тесты: 1
08.12.2011, 02:26 2
Хорошо бы код ошибки OleDb привести, тогда можно более детально почитать в каких случаях она бывает. А вообще похоже что не все параметры в строке подключения "ConnectionStrings:MainString" указанны.
0
Kot_Mefodiy
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
08.12.2011, 14:07  [ТС] 3
0x80040e10
0
sau
2060 / 1647 / 278
Регистрация: 22.07.2011
Сообщений: 6,278
Завершенные тесты: 1
08.12.2011, 15:49 4
Короче как я понял, проблема в самом SQL запросе:
http://www.adopenstatic.com/faq/80040e10.asp
для начала просто протестируй этот запрос без контролов.

З.Ы Офф. доку по ошибкам быстро нагуглить не получилось ).
0
Kot_Mefodiy
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
08.12.2011, 15:59  [ТС] 5
Цитата Сообщение от sau Посмотреть сообщение
Короче как я понял, проблема в самом SQL запросе:
http://www.adopenstatic.com/faq/80040e10.asp
для начала просто протестируй этот запрос без контролов.

З.Ы Офф. доку по ошибкам быстро нагуглить не получилось ).
да, но если избавиться от списка и вводить значение вручную, то обновение проходит без ошибок

и кстати, вот так не работает:


XML
1
2
3
4
5
6
7
          <EditItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server">
                             <asp:ListItem Text="a" Value="0"></asp:ListItem>
                             <asp:ListItem Text="b" Value="1"></asp:ListItem>
                            </asp:DropDownList>
 
            </EditItemTemplate>
0
sau
2060 / 1647 / 278
Регистрация: 22.07.2011
Сообщений: 6,278
Завершенные тесты: 1
08.12.2011, 16:22 6
да, но если избавиться от списка и вводить значение вручную, то обновение проходит без ошибок
- ну так оно и понятно, если ты уберешь нерабочий запрос:
SQL
1
SELECT DISTINCT Diler AS VAL, CASE WHEN Diler = 0 THEN 'Крупный' WHEN Diler = 1 THEN 'Средний' WHEN Diler = 2 THEN 'Малый' END AS SIZE FR OM VidProdukcii WHERE (Diler IS NOT NULL) ORDER BY Diler
- ты проверь его отдельно, может там полей каких в БД нету и т.п

и кстати, вот так не работает:
- ну а это уже другой вопрос, с которым тоже отдельно нужно разбираться )
0
Kot_Mefodiy
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
09.12.2011, 10:50  [ТС] 7
Цитата Сообщение от sau Посмотреть сообщение
- ну так оно и понятно, если ты уберешь нерабочий запрос:
SQL
1
SELECT DISTINCT Diler AS VAL, CASE WHEN Diler = 0 THEN 'Крупный' WHEN Diler = 1 THEN 'Средний' WHEN Diler = 2 THEN 'Малый' END AS SIZE FR OM VidProdukcii WHERE (Diler IS NOT NULL) ORDER BY Diler
- ты проверь его отдельно, может там полей каких в БД нету и т.п


- ну а это уже другой вопрос, с которым тоже отдельно нужно разбираться )
запрос рабочий и выводит три строки и два поля, одно из которых идет в text, другое в value dropdownlist'а


Вот так обновление проходит (указан тот же источник данных, что и у GridView), но результат не тот, что мне нужен. Listitem'ы заполняются всеми значениями поля Diler, которые есть в данной таблице при данных условиях. Мне же нужны только три.
XML
1
2
3
4
5
6
7
8
9
10
 <asp:TemplateField HeaderText="Размер" SortExpression="Размер">
            <ItemTemplate>
            <asp:Label ID="LabelSize" runat="server" Text='<%# Bind("Размер")%>'></asp:Label>
            </ItemTemplate>
            <EditItemTemplate>
            <asp:DropDownList ID="DDL1" runat="server" AppendDataBoundItems="True" DataSourceID="Tovar" 
            DataTextField="Размер" DataValueField="Знач" SelectedValue='<%# Bind("Знач")%>'>
            </asp:DropDownList>
            </EditItemTemplate>
            </asp:TemplateField>
Первоначальный вариант оказался верным и рабочим.
Все проблемы оказались всего лишь глюком программы
0
09.12.2011, 10:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 10:50

Dropdownlist и gridview
Добрый день! Мне надо сделать так чтобы при выборе групп появлялся список учащихся... У меня есть...

Организовать DropdownList в Gridview
Необходимо, чтобы при редактировании строки в Gridview одно поле имело тип Dropdownlist или что-то...

Запись значения из GridView в DropDownList
всем привет нужно записать при выборе поля в грид вью значения поля в дроп даун лист , это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru