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

GridView/SqlDataSource: не хочет работать процедура обновления

15.12.2011, 13:02. Просмотров 938. Ответов 5
Метки нет (Все метки)

Добрый день! Вчера целый день потратил и так и нечего решил. Обновления через ХП не хочет работать. Посмотреть какие параметры передаются у меня тоже не получеться(когда ловлю GridView1_RowUpdating(…)-«е» только дает список данных, новых и старых. SqlDataCource1_Updating(..)-“e” должно давать список параметров, но не хочет, хотя SqlDataCource1_Deleting(…) дает список параметров без проблем- загоняю их в стринг, а потом что бы не оправлять на сервер e.Cancel = true;.
HTML5
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//вот моя процедура обновления
ALTER PROCEDURE [dbo].[UpdateAddData1]
@old_id int,
@old_region nvarchar(50),
@old_central_outle nvarchar(50),
@old_client nvarchar(50),
@old_id_client int,
@old_loan_sum nvarchar(50),
@old_loan_currency nvarchar(4),
@old_product nvarchar(50),
@old_client_reguest nvarchar(50),
@old_r_person_f_branch_F_O nvarchar(50),
@old_date date,
@ID int,
@region nvarchar(50),
@central_outle nvarchar(50),
@client nvarchar(50),
@id_client int,
@loan_sum decimal(10,2),
@loan_currency nvarchar(4),
@product nvarchar(50),
@client_request nvarchar(50),
@r_person_f_branch_F_O nvarchar(50),
@date date
 
AS
UPDATE [dbo].[add_data_1] 
SET 
region = @region,
central_outle = @central_outle,
client = @client,
id_client = @id_client,
loan_sum = @loan_sum,
loan_currency = @loan_currency,
product = @product,
client_reguest = @client_request,
r_person_f_branch_F_O = @r_person_f_branch_F_O,
[date] = GETDATE()
WHERE id = @ID
 
-----------------------------------------------------------
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataKeyNames="id" DataSourceID="SqlDataSource1" AllowPaging="True" 
            AllowSorting="True" onrowdatabound="GridView1_RowDataBound" 
            CellPadding="4" ForeColor="#333333" GridLines="None" 
            onsorted="GridView1_Sorted" PageSize="3" 
            onrowupdating="GridView1_RowUpdating">
            <AlternatingRowStyle BackColor="White" />
            
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
                    ShowInsertButton="True" ShowSelectButton="True" />
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                    ReadOnly="True" SortExpression="id" />
                <asp:BoundField DataField="region" HeaderText="region" 
                    SortExpression="region" />
                <asp:BoundField DataField="central_outle" HeaderText="central_outle" 
                    SortExpression="central_outle" />
                <asp:BoundField DataField="client" HeaderText="client" 
                    SortExpression="client" />
                <asp:BoundField DataField="id_client" HeaderText="id_client" 
                    SortExpression="id_client" />
                <asp:BoundField DataField="loan_sum" HeaderText="loan_sum" 
                    SortExpression="loan_sum" />
                <asp:BoundField DataField="loan_currency" HeaderText="loan_currency" 
                    SortExpression="loan_currency" />
                <asp:BoundField DataField="product" HeaderText="product" 
                    SortExpression="product" />
                <asp:BoundField DataField="client_reguest" HeaderText="client_reguest" 
                    SortExpression="client_reguest" />
                <asp:BoundField DataField="r_person_f_branch_F_O" 
                    HeaderText="r_person_f_branch_F_O" SortExpression="r_person_f_branch_F_O" />
                <asp:BoundField DataField="date" HeaderText="date" SortExpression="date" />
            </Columns>
...
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ln_jurnalConnectionString %>" 
            SelectCommand="GetAllAddData1" SelectCommandType="StoredProcedure" 
            DeleteCommand="DeleteAddData1" DeleteCommandType="StoredProcedure" 
            InsertCommand="InsAddData1" InsertCommandType="StoredProcedure" 
            UpdateCommand="UpdateAddData1" 
            UpdateCommandType="StoredProcedure" 
            ondeleting="SqlDataSource1_Deleting" ConflictDetection="CompareAllValues" 
            OldValuesParameterFormatString="old_{0}" 
            onupdating="SqlDataSource1_Updating" >
//удаления работает на ура
 <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
                <asp:Parameter Name="old_id" Type="Int32" />
                <asp:Parameter Name="old_region" Type="String" />
                <asp:Parameter Name="old_central_outle" Type="String" />
                <asp:Parameter Name="old_client" Type="String" />
                <asp:Parameter Name="old_id_client" Type="Int32" />
                <asp:Parameter Name="old_loan_sum" Type="String" />
                <asp:Parameter Name="old_loan_currency" Type="String" />
                <asp:Parameter Name="old_product" Type="String" />
                <asp:Parameter Name="old_client_reguest" Type="String" />
                <asp:Parameter Name="old_r_person_f_branch_F_O" Type="String" />
                <asp:Parameter DbType="Date" Name="old_date" />
</DeleteParameters>
//а вот обновления не хочет
<UpdateParameters>
                <asp:Parameter Name="old_id" Type="Int32" />
                <asp:Parameter Name="old_region" Type="String" />
                <asp:Parameter Name="old_central_outle" Type="String" />
                <asp:Parameter Name="old_client" Type="String" />
                <asp:Parameter Name="old_id_client" Type="Int32" />
                <asp:Parameter Name="old_loan_sum" Type="String" />
                <asp:Parameter Name="old_loan_currency" Type="String" />
                <asp:Parameter Name="old_product" Type="String" />
                <asp:Parameter Name="old_client_reguest" Type="String" />
                <asp:Parameter Name="old_r_person_f_branch_F_O" Type="String" />
                <asp:Parameter Name="old_date" DbType="Date" />
                <asp:Parameter Name="ID" Type="Int32" />//я делал и таким -id- (хотя ХП на это не смотрит)
                <asp:Parameter Name="region" Type="String" />
                <asp:Parameter Name="central_outle" Type="String" />
                <asp:Parameter Name="client" Type="String" />
                <asp:Parameter Name="id_client" Type="Int32" />
                <asp:Parameter Name="loan_sum" Type="Decimal" />
                <asp:Parameter Name="loan_currency" Type="String" />
                <asp:Parameter Name="product" Type="String" />
                <asp:Parameter Name="client_request" Type="String" />
                <asp:Parameter Name="r_person_f_branch_F_O" Type="String" />
                <asp:Parameter DbType="Date" Name="date" />
            </UpdateParameters>
        </asp:SqlDataSource>
...

Вот и ОШИБКА:
Процедура или функция "UpdateAddData1" ожидает параметр "@ID", который не был указан.

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.Data.SqlClient.SqlException: Процедура или функция "UpdateAddData1" ожидает параметр "@ID", который не был указан.

Ошибка источника:

Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.

Трассировка стека:


[SqlException (0x80131904): Процедура или функция "UpdateAddData1" ожидает параметр "@ID", который не был указан.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +2030802
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5009584
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +215
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +178
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +394
System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +697
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +95
System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +1226
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +716
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +121
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Я уже даже и не знаю, что с этим делать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2011, 13:02
Ответы с готовыми решениями:

Не хочет работать хранимая процедура!
Вот процедура CREATE PROCEDURE dbo.myprocedure @a int output AS if...

Привзяка DropDownList к SqlDataSource внутри GridView
Добрый день! Прошу Вашей помощи. Есть GridView, привязанный к SqlDataSource...

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

Как заставить работать функцию JavaScript в GridView?
Добрый день Подскажите пожалуйста Я имею функцию javascrit . Я хочу чтобы эта...

GridView и EntityDataSourсe отказываются работать с Entity Framework 6
Доброго времени суток, ребята! Создал проект ASP.net, подключил БД, создал с...

5
kinguniver7
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 15
23.01.2012, 14:49  [ТС] 2
Все решилось очень просто.Главное это точно знать, что передаем в хп и что она принимает!
0
Sergey.ka
0 / 0 / 0
Регистрация: 13.04.2012
Сообщений: 5
26.04.2012, 17:19 3
Здрасте. Мой нижеприведенный код обновляет почему-то весь столбец по примеру той единственной ячейки, в которой я изменял значение. Может ,кто подскажет где ошибка заковырялась? Очень благодарю заранее.

Сергей

HTML5
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
55
 <asp:GridView ID="GridView2" DataSourceID="SqlDataSource5" AutoGenerateDeleteButton="True" 
            AutoGenerateColumns="False" AutoGenerateEditButton="True" OnRowEditing="GridView2_RowEditing"
            OnRowCancelingEdit="GridView2_RowCancelingEdit" 
             EmptyDataText="No data available." AllowPaging="True"
            PageSize="5" runat="server" OnSelectedIndexChanged="GridView2_SelectedIndexChanged">
<Columns>
 <asp:TemplateField HeaderText="Product ID">
  <ItemTemplate>
   <%# Eval("ProductID")%>
 </ItemTemplate>
 </asp:TemplateField>
 
 <asp:TemplateField HeaderText="Product Name" >
   <ItemTemplate>
         <%#Eval("ProductName")%>
   </ItemTemplate>
   <EditItemTemplate>                    
          <asp:TextBox ID="textbox1" runat="server" 
                Text='<%# Bind("ProductName") %>' />
    </EditItemTemplate>
 </asp:TemplateField>
 
 <asp:TemplateField HeaderText="Quantity Per Unit" >
    <ItemTemplate>
         <%#Eval("QuantityPerUnit")%>
    </ItemTemplate>
    <EditItemTemplate>
          <asp:TextBox ID="textbox2" runat="server" 
                 Text='<%# Bind("QuantityPerUnit") %>' />
    </EditItemTemplate>
 </asp:TemplateField>
 
 <asp:TemplateField HeaderText="UnitPrice">
    <ItemTemplate>
           <%#Eval("UnitPrice")%>
    </ItemTemplate>
 </asp:TemplateField>
</Columns>
</asp:GridView>
 
<asp:SqlDataSource ID="SqlDataSource5" runat="server" 
            ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
            SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice], [QuantityPerUnit] FROM [Products] WHERE CategoryID=@ID"
            UpdateCommand="update [Products] set [ProductName]=@ProductName , [QuantityPerUnit]=@QuantityPerUnit where ProductID=ProductID" UpdateCommandType="Text"
            DeleteCommand="delete from categories where CategoryID=CategoryID">
            <UpdateParameters>
                <asp:Parameter Name="ProductName"  Type="String" />
                <asp:Parameter Name="QuantityPerUnit"  Type="String"/>
            </UpdateParameters>
            <SelectParameters>
               <asp:QueryStringParameter Name="ID" QueryStringField="ID" />
            </SelectParameters>
            <DeleteParameters>
            </DeleteParameters>
        </asp:SqlDataSource>
0
sau
2021 / 1634 / 271
Регистрация: 22.07.2011
Сообщений: 6,208
Завершенные тесты: 1
26.04.2012, 17:44 4
Главное это точно знать, что передаем в хп и что она принимает!
- да ладно, правда что ли ? )
код обновляет почему-то весь столбец
SQL
1
 WHERE ProductID=ProductID
- поле сравнивается само с собой.
1
Sergey.ka
0 / 0 / 0
Регистрация: 13.04.2012
Сообщений: 5
26.04.2012, 18:16 5
Значит надо каким-то хитрым образом вставить ИД той строки, в которой роюсь?

А не подскажите , как это устроить исходя из кода и из того ,что кодбехайнд не используется?

Спасибо
0
Sergey.ka
0 / 0 / 0
Регистрация: 13.04.2012
Сообщений: 5
28.04.2012, 10:21 6
Цитата Сообщение от sau Посмотреть сообщение
SQL
1
 WHERE ProductID=ProductID
- поле сравнивается само с собой.
добавил в <UpdateParameters> ProductID и эта часть заработала
0
28.04.2012, 10:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2012, 10:21

ProgressBar не хочет работать из потока
помогите пожалуйста, не пойму что делаю не так, на форму закинуты прогрессбар и...

IIS не хочет работать с dbf файлами
здравствуйте. проблема заключается в следующем: поднял IIS сервер на Windows...

На серваке провайдера не хочет работать fso
На серваке провайдера не хочет работать fso, причем именно на моем сайте, его...


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

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

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