任何人都可以帮我解决以下问题:
我创建了一个SQL Server存储过程,如下所示:
create procedure prcGet_sub_menu_list
@sub_menu char(5)
as
begin
select
'menu_code' = menu_code
'menu_name' = menu_name
from sub_menu_master
where menu_code = @sub_menu
end
return
现在我从VB.NET调用这个程序,但是我得到一个错误,比如'存储过程prcGet_sub_menu_list需要参数@sub_menu未提供'。请帮我一下。我在VB.NET中的代码如下:
Imports System.Data
Imports System.Data.SqlClient
Dim sqlConn as New SqlClient.SqlConnection
sqlConn.ConnectionString = "........"
sqlConn.Open()
Dim menuCode as string
menuCode = cboDetails.selectedItem
Dim sqlCmd as New SqlCommand
sqlCmd.Connection = Connection.sqlConn
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.CommandText = "prcGet_sub_menu_list"
sqlCmd.Parameter.Add("menuCode", SqlDbType.Char)
Dim sqlDA as New SqlDataAdapter()
sqlDA.SelectCommand = sqlCmd
Dim sqlDT as New DataTable
sqlDA.Fill(sqlDT)
这是我写的代码,它给了我错误: '存储过程prcGet_sub_menu_list需要未提供的参数@sub_menu'。
请给我一些帮助。
此致 乔治
答案 0 :(得分:1)
如消息所示,您应该添加名为“sub_menu”的参数,方法与添加“menuCode”参数的方式相同。您可能还应该给它一个值:
sqlCmd.Parameter.Add("sub_menu", SqlDbType.Char).Value = "Blah"
(当然,我不知道正确的类型是什么,所以Char只是一个例子。)
答案 1 :(得分:1)
您需要使用正确的参数名称
像
这样的东西sqlCmd.Parameter.Add("@sub_menu", SqlDbType.Char)
并为其指定一个值
像
这样的东西sqlCmd.Parameters("@sub_menu").Value = val
答案 2 :(得分:1)
您必须提供与存储过程相同的参数名称和类型。
sqlCmd.Parameters.Add(New SqlParameter("@sub_menu", SqlDbType.Char, 5)).Value = "Joe"
格塔。
答案 3 :(得分:1)
一些事情。参数应为参数。也不推荐使用sqlCmd.Parameters.Add,因此请使用sqlCmd.Parameters.AddWithValue:
sqlCmd.Parameters.AddWithValue(“menuCode”,menuCode)