2009-10-04 3 views
0

Привет, у меня есть gridview, связанный с sqldatasource. Я добавил хранимую процедуру для удаления из нескольких таблиц, а затем включил удаление на смарт-теге gridviews.удалить из gridview с помощью хранимой процедуры

Когда я нажимаю кнопку удаления, я получаю сообщение об ошибке: «Объект должен реализовывать IConvertible». Я читал, что проблема заключается в передаче параметра хранимой процедуре, возможно, при передаче неправильного типа данных. Я не уверен, что я передаю параметр хранимой процедуре вообще. Параметр должен быть gridviews datakeyname, в этом случае это «UserId».

Хранимая процедура работает я прекрасно в студии управления, поэтому я думаю, что это просто параметр передается (или, возможно, не прошел)

ли я иметь код параметра в коде, чтобы быть передан хранимая процедура?

<asp:SqlDataSource ID="selectUsers" runat="server" ConnectionString="<%$ ConnectionStrings:CASSFConnectionString %>" 
     SelectCommand="SELECT aspnet_Membership.UserId, aspnet_Membership.IsLockedOut, aspnet_Membership.Email, aspnet_Membership.CreateDate, aspnet_Membership.LastLoginDate, aspnet_Membership.LastPasswordChangedDate, aspnet_Profile.PropertyValuesString, aspnet_Users.UserName, aspnet_Membership.IsApproved FROM aspnet_Membership INNER JOIN aspnet_Profile ON aspnet_Membership.UserId = aspnet_Profile.UserId INNER JOIN aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId AND aspnet_Profile.UserId = aspnet_Users.UserId WHERE (CONVERT (nvarchar(256), aspnet_Profile.PropertyValuesString) = @district)" 
     DeleteCommand="DeleteUsers" DeleteCommandType="StoredProcedure" UpdateCommand="UPDATE [aspnet_Membership] SET [IsApproved] = @IsApproved, [Email] = @email, [IsLockedOut] = @IsLockedOut WHERE [aspnet_Membership].[UserId] = @UserID"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="DropDownList1" Name="district" PropertyName="SelectedValue" /> 
     </SelectParameters> 
     <DeleteParameters> 
      <asp:Parameter Name="UserId" Type="String" /> 
     </DeleteParameters> 
     <UpdateParameters> 
      <asp:Parameter Name="IsApproved" /> 
      <asp:Parameter Name="email" /> 
      <asp:Parameter Name="IsLockedOut" /> 
      <asp:Parameter Name="UserID" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 
+0

Вы должны указать идентификатор пользователя в параметрах удаления вашего источника данных sql. Некоторый код поможет осветить вашу проблему. – Phaedrus

+0

Спасибо. Я добавил свой SqlDataSource. Могу ли я установить этот параметр здесь, если вы используете хранимую процедуру. – Tones

ответ

0

Найден ответ, я был просто удалить Type="String" от удаления параметра.

Смежные вопросы