我不确定我应该在我的vb.net项目后面的代码中写什么。我有一个过滤gridview的中继器。当试图声明标量变量@CompanyID时,我得到了我在这篇文章的标题中提到的错误。有人能帮帮我吗?我试着在很多论坛上寻找答案,但我找不到正确的答案。
dsLetters.SelectCommand = "SELECT DISTINCT LEFT(ProductName, 1) AS [Letter]
FROM Product, CompanyLink, Company
WHERE Product.ProductID = CompanyLink.ProductID
AND CompanyLink.CompanyID = Company.CompanyID
AND Company.CompanyID = @CompanyID"
'declaring scalar variable @CompanyID
dsLetters.SelectParameters.Clear()
Dim cp As ControlParameter = New ControlParameter
cp.ControlID = "rptLetters"
cp.DefaultValue = "-1"
cp.Name = "CompanyID"
cp.PropertyName = "SelectedValue"
cp.Type = TypeCode.Decimal
dsLetters.SelectParameters.Add(cp)
我认为问题在于中继器没有选择值的概念;它们所做的只是显示你选择了什么。您可能需要做的是模拟隐藏下拉列表中的重复器值,并添加客户端代码以在下拉列表中选择适当的值,然后将ControlParameter绑定到此属性。