我有下面的代碼觸發存儲過程通過匹配參數與表中的主鍵刪除記錄。我通過調試運行代碼一切正常分配,但我不斷收到一個錯誤,指出有太多的參數指定。我認爲這與我的存儲過程有關,因爲值正在正確分配。存儲過程太多的參數錯誤
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')或執行存儲過程。 – 2013-05-10 20:45:27
Sqlds是我的sqldatasource。我想只使用存儲過程。我應該刪除sqldatasource控件並在我的代碼中創建連接嗎? – 2013-05-10 21:06:14
是的,當您的目標是調用刪除單行的存儲過程時,爲什麼要使用數據源?這就像清空整個冰箱扔掉壞牛奶一樣。 – 2013-05-10 21:09:28