Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
.NET 4.x

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

07.12.2011, 23:11. Показов 2175. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2011, 23:11
Ответы с готовыми решениями:

Заполнение DropDownList внутри GridView (WPF)
Добрый день! Очень нужна помощьч... VS2010, VB.NET Имеется GridView. В нем DropDownList, который привязан к AccessDataSource...

GridView и несколько SqlDataSource
Здравствуйте. Никак не могу сообразить. Пишу ASP.NET приложение в CodeGear RAD 2007. При создании GridView формируется к нему...

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

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

З.Ы Офф. доку по ошибкам быстро нагуглить не получилось ).
0
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
08.12.2011, 15:59  [ТС]
Цитата Сообщение от 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
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
08.12.2011, 16:22
да, но если избавиться от списка и вводить значение вручную, то обновение проходит без ошибок
- ну так оно и понятно, если ты уберешь нерабочий запрос:
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
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 4
09.12.2011, 10:50  [ТС]
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2011, 10:50
Помогаю со студенческими работами здесь

Как обновить GridView после изменения SELECT в SqlDataSource?
Здравствуйте. Работаю с компонентом GridView, связанным с SQLDataSource. В SQLDataSource свойство Select command примерно такое: SELECT...

Позиционирование записи в SqlDataSource при выборе значения в GridView
Доброе время суток! Помогите начинающему! VB.Net, ASP.Net, VS 2010 Задача: есть GridView с колонкой &quot;Выбор&quot; при...

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru