错误消息:"无法将参数从字符串转换为int32。"

时间:2015-03-25 21:13:22

标签: vb.net stored-procedures

我知道这是一个常见的问题,但我不能为我的生活找出错误所在。存储过程本身完美无缺,客户端上的代码看起来很好。

程序的参数:

@ClientInquiryID int,
@RelatedPartyID int,
@RelatedPartyName varchar(50),
@RelatedPartyPhone varchar(25),
@RelatedPartyAddress varchar(100),
@RelatedPartyCity varchar(50),
@RelatedPartyStateID int,
@RelatedPartyZip varchar(10),   
@RelatedPartyEmail varchar(50),
@IsEmergencyContact bit,
@UserID int

填写它们的代码: (它们包含在Repeater控件中,代码设置为遍历给定的控件列表,这就是为什么大多数控件都使用看似虚拟值的原因。)

repeaterParams(0) = New SqlParameter("@ClientInquiryID", NewID)
repeaterParams(1) = New SqlParameter("@UserID", Convert.ToInt32(hfStaffID.Value.ToString))
repeaterParams(i) = New SqlParameter("@RelatedPartyName", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyPhone", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyAddress", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyCity", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyZip", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyEmail", IIf(Not String.IsNullOrEmpty(txt.Text), txt.Text, ""))
repeaterParams(i) = New SqlParameter("@RelatedPartyStateID", IIf(Not String.IsNullOrEmpty(ddl.SelectedValue), CType(ddl.SelectedValue, Integer), 0))
repeaterParams(i) = New SqlParameter("@IsEmergencyContact", IIf(Not String.IsNullOrEmpty(chk.Checked), chk.Checked, False))

ds = SqlHelper.ExecuteDataset(_SQLService.GetConnection, Procedure, repeaterParams)

当我插入一个断点并查看它们传递给SqlHelper时的值时,一切看起来都是正确的。参数的值是正确的,并且它们的DBType与过程中的变量应该匹配。但是在存储过程运行之前它就会出错。

0 个答案:

没有答案