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

После изменения GridView не вносятся изменения в БД

20.02.2010, 00:44. Просмотров 1417. Ответов 8
Метки нет (Все метки)

Значит есть GridView подсоединенный к DataSource, который в свою очередь подсоединен к БД. Данные выводятся, удаляются, но не обновляются.
Вообще по пути к обновлению было много ошибок. Но избавившись от ошибок получил проблему.
Суть в чем: Нажимаем "правка строки", строка переводится в режим редактирования, меняем все что надо, нажимаем "принять", и ничего не изменилось. Что это, господа проффесионалы? Как лечить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2010, 00:44
Ответы с готовыми решениями:

После изменения кода, отображает элементы до изменения
Ребята, помогите, такая проблема: есть корпоративный сайт написанный на ASP.NET работает через IIS ...

Отследить изменения в ячейке GridView и Таймаут сессии
Добрый день. подскажите пожалуйста, как отследить изменения в ячейке GridView и если оно...

DropDownList в GridView для изменения значений поля
Необходимо включить DropDownList связанный с таблицей БД (справочник) в GridView. DropDownList...

Событие изменения содержимого страницы без изменения адреса и перезагрузки страницы
Доброго времени суток! Такая проблема имеется: есть форма на определенном сайте (сам сайт, к...

ConfigurationManager.AppSettings как после изменения обновить значения в файле
сохраняю настройки следующим образом ConfigurationManager.AppSettings = this.tbServerDB.Text; ...

8
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
21.02.2010, 11:06 2
Покажите код, как Вы привязывали датасоурс к грилу и код обновления данных
0
AlexzundeR
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 26
21.02.2010, 16:33  [ТС] 3
DataSource и GridView
C#
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
                    <asp:SqlDataSource ID="Users" runat="server"  
                        ConnectionString="<%$ ConnectionStrings:u216958ConnectionString %>" 
                        SelectCommand="SELECT aspnet_Users.UserName, aspnet_UsersInRoles.UserId, aspnet_UsersInRoles.RoleId, aspnet_Roles.RoleName FROM aspnet_UsersInRoles INNER JOIN aspnet_Users ON aspnet_UsersInRoles.UserId = aspnet_Users.UserId INNER JOIN aspnet_Roles ON aspnet_UsersInRoles.RoleId = aspnet_Roles.RoleId"
                        InsertCommand="aspnet_UsersInRoles_AddUsersToRoles"
                        DeleteCommand="DELETE FROM aspnet_UsersInRoles WHERE (UserId = @UserId) AND (RoleId = @RoleId)" 
                        UpdateCommand="EXEC Update_a @RoleName, @UserName" UpdateCommandType="Text" 
                         > 
                        <DeleteParameters>
                            <asp:Parameter Name="UserId" Type="UInt32"/>
                            <asp:Parameter Name="RoleId" Type="UInt32"/>
                        </DeleteParameters>
                        <UpdateParameters>
                            <asp:Parameter Name="UserName" Type="String"/>
                            <asp:Parameter Name="RoleName" Type="String"/>
                        </UpdateParameters> 
                   </asp:SqlDataSource>
 
 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                            DataSourceID="Users" onrowdatabound="GridView1_RowDataBound" 
                            onrowupdating="GridView1_RowUpdating"
                            DataKeyNames="UserId,RoleId" >
                            <Columns>
                                <asp:BoundField DataField="UserName" HeaderText="UserName" 
                                    SortExpression="UserName" />
                                <asp:BoundField DataField="UserId" HeaderText="UserId" ReadOnly="True" 
                                    SortExpression="UserId" />
                                <asp:BoundField DataField="RoleId" HeaderText="RoleId" ReadOnly="True" 
                                    SortExpression="RoleId" />
                                <asp:BoundField DataField="RoleName" HeaderText="RoleName" 
                                    SortExpression="RoleName" />
                            </Columns>
                        </asp:GridView>
Хранимка Update_a
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ALTER PROCEDURE [dbo].[Update_a]
@UserName nvarchar(20),
@RoleName nvarchar(20)
 
AS
BEGIN
DECLARE @RoleID uniqueidentifier
DECLARE @UserId uniqueidentifier
SET @RoleID=NULL
SET @UserId=NULL
SELECT @UserId = UserId FROM aspnet_Users WHERE (UserName=@UserName)
SELECT @RoleId = RoleId FROM aspnet_Roles WHERE (RoleName=@RoleName)
UPDATE aspnet_UsersInRoles 
SET RoleId = @RoleId
WHERE UserId=@UserId
END
Хранимка рабочая.
Все предложения и поправки будут выслушаны и приняты к сведению))
0
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
22.02.2010, 11:52 4
UpdateCommand="EXEC Update_a @RoleName, @UserName" UpdateCommandType="Text"
1. Вот
0
22.02.2010, 11:52
AlexzundeR
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 26
23.02.2010, 15:05  [ТС] 5
Спасибо за ответ. Я понял Вашу мысль, но эта строчка просто попытка исправить положение, даже подставив просто имя процедуры обновления БД даже не предвидится. Получается, что информация просто где-то теряется и не доходит до БД.
0
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
23.02.2010, 15:28 6
Почитайте книгу Белиньясо "Asp.NEt 2.0" и поищите исходники, там есть пример сохранения новой роли
0
AlexzundeR
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 26
23.02.2010, 16:29  [ТС] 7
Все таки вы считаете, что проблема в том что я использую определенную таблицу, а не в прямоте коддинга? Была такая мысль, но для ее проверки не хватило терпения. Спасибо.
0
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
23.02.2010, 16:56 8
Цитата Сообщение от AlexzundeR Посмотреть сообщение
Все таки вы считаете, что проблема в том что я использую определенную таблицу, а не в прямоте коддинга? Была такая мысль, но для ее проверки не хватило терпения. Спасибо.
Коддинг не проверял, но через переменную Profile можно спокойно менять роли и прочее.
0
AlexzundeR
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 26
23.02.2010, 19:53  [ТС] 9
Да это я уже понял) дело получается в том, что, пользуясь Мелкософтовской базой, не предполагается, что этим ресурсом можно будет пользоваться на прямую.
Вот ресурс на это:
http://msdn.microsoft.com/ru-ru/library/8fw7xh74.aspx
Спасибо за подсказки) без таких подсказок очень трудно додуматься до чего-то хорошего.
0
23.02.2010, 19:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2010, 19:53

Как использовать каскадные drop down list, которые после изменения записи запрещают редактирование?
Всем привет!! Я новичок в asp.net, прошу помощи. Моя проблема состоит в следующем: есть...

Обновление данных на странице после изменения их в БД
Доброго времени суток , подскажите как сделать автоматическое обновление страницы после добавления...

Как сохранить изменения в бд после редактирования в View
Имеется бд на сервере. Реализованы классы Linq to sql для таблиц бд. Есть страница для...


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

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

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