通过LINQ调用SQL SP时出错

时间:2010-05-05 21:30:34

标签: c# asp.net linq-to-sql

新手问题:我有一个带有十个参数的SQL SP(八个输入,两个输出),但是当我尝试通过代码中的LINQ调用它时,我收到以下错误消息:

“'DataClassesDataContext.ST_CR_CREATE_CASE_BASIS(string,string,string,string,System.DateTime?,string,string,string,ref int?,ref int?)'的最佳重载方法匹配'有一些无效的参数”。

与对比?似乎无法识别,但我感到困惑:数据类型与SQL类型匹配,参数数量匹配,其他参数不表现出相同的行为。谁能告诉我发生了什么事?提前谢谢。

- SQL SP:

create procedure ST_CR_CREATE_CASE_BASIS

@p_Pers_No      nvarchar (50),
@p_Subject      nvarchar (255),

@p_RQ_XML       nvarchar(max),
@p_RQ_XSL       nvarchar(max),
@p_Date_Submit      smalldatetime,
@p_User_ID_Submit   nvarchar (255),
@p_RQ_Status        nvarchar (50),
@p_User_ID_OnBehalf     nvarchar (255),

@p_Case_Number      int output,
@p_RQ_ID        int output

as
begin

 -- ... etc.; the SP works fine when called from SSMS

aspx页面中的代码隐藏过程如下所示:

protected void cmdSubmit_Click(object sender, EventArgs e)
{

    using (DataClassesDataContext vDataCont = new DataClassesDataContext())
    {
        Int32 vNewCaseNr;
        Int32 vNewReqNr;
        DateTime vNow = System.DateTime.Now;

        vDataCont.ST_CR_CREATE_CASE_BASIS("101", "Test Subject Late Wed", null, null, vNow , "101", "1", "101", ref vNewCaseNr, vNewReqNr);
     }

}

1 个答案:

答案 0 :(得分:0)

using (DataClassesDataContext vDataCont = new DataClassesDataContext())
    {
        int? vNewCaseNr;
        int? vNewReqNr;
        DateTime vNow = System.DateTime.Now;

        vDataCont.ST_CR_CREATE_CASE_BASIS("101", "Test Subject Late Wed", null, null, vNow , "101", "1", "101", ref vNewCaseNr, ref vNewReqNr);
     }