У меня есть код ниже, который запускает хранимую процедуру для удаления записи, сопоставляя параметр с первичным ключом в таблице. Я запускал код через debug ang, который все правильно присваивает, но я все равно получаю сообщение об ошибке, в котором указано слишком много аргументов. Я думаю, что это имеет какое-то отношение к моей хранимой процедуре, потому что значения присваиваются должным образом.Слишком много аргументов Ошибка в хранимой процедуре
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Dim CurrentCommand As String = e.CommandName
Dim CurrentRow As Integer = Int32.Parse(e.CommandArgument.ToString())
Dim ID As String = GridView1.DataKeys(CurrentRow).Value
sqlds.DeleteParameters.Add("KeyOpType", ID)
sqlds.Delete()
End Sub
хранимых процедур в SQL Server 2008
ALTER PROCEDURE [dbo].[GetGenInfo_DeleteMines]
(@KeyOpType int)
AS
Delete FROM GenInfo_OpType
Where KeyOpType = @KeyOpType
Что такое 'sqlds'? Почему вы используете 'DeleteParameters.Add' вместо объекта команды, установленного для хранимой процедуры, и просто' Parameters.AddWithValue() 'и' cmd.ExecuteNonQuery() '? Вам нужно выбрать, будет ли ваш код VB.Net вызывать специальные команды (например, DELETE) или выполнять хранимые процедуры. –
Sqlds - мой sqldatasource. Я хочу просто использовать хранимые процедуры. Должен ли я просто удалить элемент управления sqldatasource и создать соединения в моем коде? –
Да, почему вы используете источник данных, когда ваша цель состоит в вызове хранимой процедуры, которая удаляет одну строку? Это похоже на опорожнение всего холодильника, чтобы выбрасывать плохое молоко. –