ObjectDataSource转换问题 - 异常

时间:2012-05-30 10:59:32

标签: c# asp.net data-binding objectdatasource

我有一个Gridview控件,我想根据页面上的一些控件动态绑定它。我已经得到了一切正常工作,除了下面的代码我试图动态设置选择方法以及传递参数。我得到了一个例外,我尝试了多种创建参数的方法。这里有代码:

string filterValue = FilterValue.Value; //FilterValue.Value is a HiddenField (Value is definitely populated)

MyObjDataSource.SelectParameters.Add("policynumber",TypeCode.String, filterValue);    
MyObjDataSource.SelectMethod = "GetPolicybyPolicyNumber";    
MyObjDataSource.Select();

我的选择方法如下:

public IQueryable GetPolicybyPolicyNumber(Parameter policynumber, string sortExpr, int maximumRows, int startRowIndex)
    {
       //Debugging does not even reach here. I'm just returning null for demo purposes
       return null;
    }

我不断获得的例外是:

System.InvalidOperationException:无法将参数'policynumber'的值从'System.String'转换为'System.Web.UI.WebControls.Parameter'  在System.Web.UI.WebControls.ObjectDataSourceView.ConvertType(Object value,Type type,String paramName)....

我也尝试了这个,它给出了同样的例外:

    Parameter param = new Parameter();
    param.Type = TypeCode.String;
    param.DefaultValue = FilterValue.Value;
    MyObjDataSource.SelectParameters.Add(param);

有什么建议吗? TX

1 个答案:

答案 0 :(得分:1)

将第一个param数据类型更改为字符串,如下所示

public IQueryable GetPolicybyPolicyNumber(string policynumber, string sortExpr, int maximumRows, int startRowIndex){...}