我有一个问题,我是asp.net的新手并且对他们的语法真的不太了解,我确实理解错误但不知道如何实现修复:
ProductTable.RowFilter = "ProductID ='" & ddlCategory.SelectedValue & "'"
错误即时接收: 无法对system.int32和system.string数据视图执行'='操作
我的productID数据类型为: int ;
现在我不知道如何比较一个字符串vs int,ddlCatergory选择的索引也会返回一个值...除了点......我完全卡住了。
感谢任何帮助。
使用Windows 8,VS 2012,SQL数据库。
答案 0 :(得分:0)
ddlCategory.SelectedValue
属性为string
,则 SelectedValue
可能为string
,您也将其指定为字符串,例如过滤器值可能最终为"ProductID ='123'"
,其中123是SelectedValue
。
假设SelectedValue
永远不为null或为空,我会使用类似的东西:
ProductTable.RowFilter = string.format("ProductID = {0}", ddlCategory.SelectedValue);
如果它可能是空的,那么我会沿着这些方向做点什么:
if(string.IsNullOrEmpty(ddlCategory.SelectedValue))
{
ProductTable.RowFilter ="";
}
else {
ProductTable.RowFilter = string.format("ProductID = {0}", ddlCategory.SelectedValue);
}
OR
int tempInt;
if(int.TryParse(ddlCategory.SelectedValue,out tempInt))
{
ProductTable.RowFilter = string.format("ProductID = {0}", tempInt);
}
我已经在C#中编写了上述内容(虽然对不起语法检查!)尽管如果有必要将其转换为VB也很容易。
答案 1 :(得分:0)
你应该尝试在=符号后删除单引号,所以它给出类似这样的东西
ProductTable.RowFilter = "ProductID = " + ddlCategory.SelectedValue