asp.net
  • .net
  • visual-studio-2012
  • 2013-11-27 82 views 0 likes 
    0

    我有这个问题,Im新的asp.net,真的没有太多的理解与他们的语法,我明白错误,但不知道如何实现修复:asp.net RowFilter比较字符串与int

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

    错误IM recieving是无法对system.int32 '=' 的操作和system.string数据视图

    我的productID数据类型为INT;

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

    任何帮助表示赞赏。

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

    回答

    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会很容易。

    +0

    笑,运营商藏汉后的语法问题而言,我想同样的事情,但我在PHP程序,而且不知道有关asp.net,谢谢 – Careen

    0

    你应该等号(=)后去除单引号尝试,所以它给像这样

    ProductTable.RowFilter = "ProductID = " + ddlCategory.SelectedValue 
    
    +0

    无法得到这个工作,语法错误后运营商。我认为这应该工作,如果我工作了一些东西,我会回到你身边 – Careen

    相关问题