将字符串数组传递给 LINQ 存储过程

本文关键字:LINQ 存储过程 字符串 数组 | 更新日期: 2023-09-27 18:32:53

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

存储的Proc是通过将现有sproc拖动到dbml页面上来创建的。 存储Proc需要3个(或任何数量)参数,我在GetStringParams()中确定其值。

错误: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;
}

提前谢谢。 我搜索了这个问题,但找不到我想要的确切内容。 最好不必修改程序。

将字符串数组传递给 LINQ 存储过程

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[] { "", "", "" };
}

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