Я унаследовал некоторый ASP.NET код, который мне нужно обновить что привело к моей необходимости изменить жесткий кодированный SQL Update
заявления АГУ SqlDataSource
«s UpdateCommandType
из строки () в хранимую процедуру, содержащую инструкцию Update
.SqlDataSource UpdateParameters - Входная строка не была в правильном формате
Строка выполняется отлично и использует параметры, которые привязаны к элементам управления в представлении деталей (я знаю, что это не лучшая практика, и мне больно работать с подключениями данных с клиентской стороны ...! Но у меня нет время для повторной записи всех подключений к данным для этого и многих страниц).
Во всяком случае, я просто изменил UpdateCommand
хранимой процедуры, которая делает то же самое, и я просто получаю ошибку
Строка ввода не был в правильном формате.
при попытке обновить на странице.
Я могу предоставить код, если требуется, но он большой & ужасно, поэтому я предварительно спрашиваю, есть ли у кого-нибудь какие-либо первоначальные идеи? Я поставил несколько маленьких бит ниже. Я смотрел на UpdateParameterCollection
, так как мне интересно, когда коллекция параметров кэшируется где угодно, но ничего не видит.
У меня есть элементы управления, связанные с DataSource
элементов, как так:
<EditItemTemplate>
<asp:CheckBox ID="chkNonReview" runat="server" Checked='<%# Bind("NonReview") %>' />
</EditItemTemplate>
И SqlDataSource
было изменено от этого ...
<asp:SqlDataSource ID="dsEventDV" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnString %>"
DeleteCommand="DELETE FROM [I_TRAINEE_EVENTS] WHERE [EVENTID] = @EVENTID"
InsertCommand="INSERT_TRAINEE_EVENTS_ED3"
InsertCommandType="StoredProcedure"
OnInserted="DSEvent_Inserted"
SelectCommand="Get_Candidate_Events_I3"
SelectCommandType="StoredProcedure"
UpdateCommand="UPDATE I_TRAINEE_EVENTS (etc...)"
.....
к этому:
<asp:SqlDataSource ID="dsEventDV" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnString %>"
DeleteCommand="DELETE FROM [I_TRAINEE_EVENTS] WHERE [EVENTID] = @EVENTID"
InsertCommand="INSERT_TRAINEE_EVENTS_ED3"
InsertCommandType="StoredProcedure"
OnInserted="DSEvent_Inserted"
SelectCommand="Get_Candidate_Events_I3"
SelectCommandType="StoredProcedure"
UpdateCommand="UPDATE_TRAINEE_EVENTS"
UpdateCommandType="StoredProcedure">
.....
С новыми значениями UpdateCommand
.
Параметры обновления:
<UpdateParameters>
<asp:Parameter Name="EVENTID" Type="Int32"/>
<asp:Parameter Name="EVENTTYPEID" Type="Int32"/>
<asp:Parameter Name="EVENTDATE" Type="DateTime"/>
<asp:Parameter Name="STAFFID" Type="Int32"/>
<asp:Parameter Name="REVIEWNO" Type="Int32"/>
<asp:Parameter Name="COMMENTS" Type="String"/>
<asp:Parameter Name="DESTINYVERIFIED" Type="Int32"/>
<asp:Parameter Name="DESTINYVERIFIEDBY" Type="Int32"/>
<asp:Parameter Name="DESTINYVERIFIEDDATE" Type="DateTime"/>
<asp:Parameter Name="REASONFORSUSPENSIONID" Type="Int32"/>
<asp:Parameter Name="RETURNTOWORKDATE" Type="DateTime"/>
<asp:Parameter Name="ContactDetailsUpdated" Type="Int32"/>
<asp:Parameter Name="RETENTION_STATUS_ID" Type="Int32"/>
<asp:Parameter Name="RETENTION_REASON_ID" Type="Int32"/>
<asp:Parameter Name="NonReview" Type="Int32"/>
<asp:Parameter Name="FalsifiedEventReason" Type="Int32"/>
<asp:Parameter Name="SusReqReasonID" Type="Int32"/>
<asp:Parameter Name="SusReqReturnDate" Type="DateTime"/>
</UpdateParameters>
Сохраненная декларация процедура выглядит следующим образом:
CREATE PROCEDURE [dbo].[UPDATE_TRAINEE_EVENTS]
@EVENTID int,
@EVENTTYPEID int,
@EVENTDATE datetime,
@STAFFID int,
@REVIEWNO int,
@COMMENTS varchar(2100),
@DESTINYVERIFIED int,
@DESTINYVERIFIEDBY int,
@DESTINYVERIFIEDDATE datetime,
@REASONFORSUSPENSIONID int,
@RETURNTOWORKDATE datetime,
@ContactDetailsUpdated int,
@RETENTION_STATUS_ID int,
@RETENTION_REASON_ID int,
@NonReview int,
@FalsifiedEventReason int,
@SusReqReasonID int,
@SusReqReturnDate datetime
AS
......
Я также запустить SQL Server Profiler на сессии, чтобы увидеть, что передается в базу данных, однако ошибка возникает, прежде чем что-либо попадет в базу данных, которая, как представляется, указывает на то, что проблема находится в стороне от ASP.NET.
Pls проверить значение и поле типа данных ... –
К сожалению, я должен отметить, что я пошел за многочисленные типы данных раз, чтобы проверить, они весь матч .. Для насколько я изменил все на Strings и Varchars в SP) ... Я даже гарантировал, что параметры находятся в том же порядке выше, что и в SP (поскольку я знаю, что некоторые устройства для подключения к данным требуют этого) ... – CJH
Обновлены приведенные выше примеры кода, чтобы включить полные параметры обновления и объявление SP. – CJH