【问题标题】:Passing Array of Strings to LINQ Stored Procedure将字符串数组传递给 LINQ 存储过程
【发布时间】:2012-05-01 16:19:35
【问题描述】:

有人能告诉我如何处理将字符串数组传递给我的 LINQ 存储过程吗?

storedProc 是通过将现有 sproc 拖到 dbml 页面上创建的。 storedProc 接受我在GetStringParams() 中确定的值的 3 个(或任意数量)参数。

错误:No overload for storedProc takes 1 argument

DataClassDataContext db = new DataClassDataContext();
//storedProc takes 3 params
gridview.DataSource = db.storedProc(GetStringParams());
gridview.DataBind();

private string[] GetStringParams()
{
    string[] params = new string[3];    
    //Perform some logic here to determine which params to pass
    if (somethingIsTrue)
        params = new string[] { "param1", "param2", "param3" };
    else if (somethingElseIsTrue)
        params = new string[] { "param1", "param2", "" };
    else
        params = new string[] { "", "", "" };
    return params;
}

提前致谢。我搜索了这个问题,但找不到我正在寻找的确切内容。最好不必修改存储过程。

【问题讨论】:

    标签: c# linq stored-procedures parameters


    【解决方案1】:
    DataClassDataContext db = new DataClassDataContext();
    //storedProc takes 3 params
    string[] param = GetStringParams();
    gridview.DataSource = db.storedProc(param[0], param[1], param[2]);
    gridview.DataBind();
    
    private string[] GetStringParams()
    {
        //Perform some logic here to determine which params to pass
        if (somethingIsTrue)
            return new string[] { "param1", "param2", "param3" };
        else if (somethingElseIsTrue)
            return new string[] { "param1", "param2", "" };
        else
            return new string[] { "", "", "" };
    }
    

    您不能将数组传递给多参数方法,除非该方法要求提供参数数组。

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多