Vb.net SqlParameterCollection仅接受非null SqlParameter类型对象,而不接受布尔对象
我正在调用一个存储过程“CategoryListShow”。存储过程有两个参数,一个是ID,它是输入参数,而CategoryResult是输出参数。我试图在这个文本框txtCategory.Text上显示输出参数的值 错误:黄色屏幕显示此错误 SqlParameterCollection仅接受非空SqlParameter类型对象,而不接受布尔对象 请引导我 错误1: 您正在尝试将Vb.net SqlParameterCollection仅接受非null SqlParameter类型对象,而不接受布尔对象,vb.net,stored-procedures,Vb.net,Stored Procedures,我正在调用一个存储过程“CategoryListShow”。存储过程有两个参数,一个是ID,它是输入参数,而CategoryResult是输出参数。我试图在这个文本框txtCategory.Text上显示输出参数的值 错误:黄色屏幕显示此错误 SqlParameterCollection仅接受非空SqlParameter类型对象,而不接受布尔对象 请引导我 错误1: 您正在尝试将新SqlParameter(…).Direction=ParameterDirection.Input的结果添加到cm
新SqlParameter(…).Direction=ParameterDirection.Input的结果添加到cmd.Parameters
,该结果具有布尔值(它是一个比较值)
必须首先初始化参数,然后将其添加到集合中:
错误2:
您正在添加@ID
两次
错误3:
由于@ID
声明为Int
,因此它的值应为Int=>convertCategoryIdTxt.Text
类型,然后再将其分配给参数
您可以按如下方式修复这些问题:
cmd.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)
.Direction = ParameterDirection.Input)
错误1:
您正在尝试将新SqlParameter(…).Direction=ParameterDirection.Input的结果添加到cmd.Parameters
,该结果具有布尔值(它是一个比较值)
必须首先初始化参数,然后将其添加到集合中:
错误2:
您正在添加@ID
两次
错误3:
由于@ID
声明为Int
,因此它的值应为Int=>convertCategoryIdTxt.Text
类型,然后再将其分配给参数
您可以按如下方式修复这些问题:
cmd.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)
.Direction = ParameterDirection.Input)
在设置@ID值的行中,将其更改为此
''' @ID '''
Dim param As SqlParameter = New SqlParameter("@ID", SqlDbType.Int, 4)
param.Direction = ParameterDirection.Input
param.Value = Int32.Parse(CategoryIdTxt.Text);
cmd.Parameters.Add(param);
''' @CategoryResult '''
param = New SqlParameter("@CategoryResult", SqlDbType.VarChar, 50)
param.Direction = ParameterDirection.Output
cmd.Parameters.Add(param);
您无需再次申报。只需设置它的值。我发现处理参数的最佳方法是使用以下两行代码
cmd.Parameters@("ID").Value = CategoryIdTxt.Text
在设置@ID值的行中,将其更改为此
''' @ID '''
Dim param As SqlParameter = New SqlParameter("@ID", SqlDbType.Int, 4)
param.Direction = ParameterDirection.Input
param.Value = Int32.Parse(CategoryIdTxt.Text);
cmd.Parameters.Add(param);
''' @CategoryResult '''
param = New SqlParameter("@CategoryResult", SqlDbType.VarChar, 50)
param.Direction = ParameterDirection.Output
cmd.Parameters.Add(param);
您无需再次申报。只需设置它的值。我发现处理参数的最佳方法是使用以下两行代码
cmd.Parameters@("ID").Value = CategoryIdTxt.Text
仍然得到相同的错误。如何将此文本框类别YIDTXT.Text的值作为ID输入参数传递仍然会遇到相同的错误。如何将此textbox类别YidText.Text的值作为ID输入参数传递