asp.net RowFilter将字符串与int进行比较

时间:2013-11-27 16:27:16

标签: asp.net .net visual-studio-2012

我有一个问题,我是asp.net的新手并且对他们的语法真的不太了解,我确实理解错误但不知道如何实现修复:

   ProductTable.RowFilter = "ProductID ='" & ddlCategory.SelectedValue & "'"

错误即时接收 无法对system.int32和system.string数据视图执行'='操作

我的productID数据类型为 int ;

现在我不知道如何比较一个字符串vs int,ddlCatergory选择的索引也会返回一个值...除了点......我完全卡住了。

感谢任何帮助。

使用Windows 8,VS 2012,SQL数据库。

2 个答案:

答案 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