簡體   English   中英

需要幫助來解決和理解此錯誤:異常詳細信息:System.InvalidOperationException:2

[英]Need Help to solve and understand this error: Exception Details: System.InvalidOperationException: 2

我收到此錯誤:

異常詳細信息:System.InvalidOperationException:2:字符串截斷:max = 0,len = 1,value ='3'。

從這組代碼中:

var reqcategory=Request["category"];
foreach (var cat in reqcategory)
{
    var sql5 = "SELECT Type.PreReq1, Type.PreReq2, 
                       (CASE WHEN (Type.PreReq1 IS NOT NULL)
                             AND (PermitApp1.RPClass IS NULL) 
                             AND (PermitApp1.RPCategory IS NULL) 
                        THEN 1 ELSE 0 END) AS missing1, 
                       (CASE WHEN (Type.PreReq2 IS NOT NULL) 
                             AND (PermitApp2.RPClass IS NULL)
                             AND (PermitApp2.RPCategory IS NULL) 
                        THEN 1 ELSE 0 END) AS missing2 
                FROM Type LEFT JOIN PermitApp AS PermitApp1 
                     ON (Type.PreReq1=PermitApp1.RPClass) 
                       OR (Type.PreReq1=PermitApp1.RPCategory) 
                           AND ( PermitApp1.CDSID = @0 ) 
                           AND (PermitApp1.MDecision='1') 
                          LEFT JOIN PermitApp AS PermitApp2 
                     ON (Type.PreReq2=PermitApp2.RPClass) 
                       OR (Type.PreReq2=PermitApp2.RPCategory) 
                           AND ( PermitApp2.CDSID = @1 ) 
                           AND (PermitApp2.MDecision='1') 
                WHERE Type.PType = @2";

    var result = db.QuerySingle(sql5, myCDSID, username, cat);
    var miss1 = result.missing1;
    var miss2 = result.missing2;

    if(miss1 == '1' || miss2 == '1'){
        ModelState.AddError("missing", 
                  "You have not met the Pre-Requisites for "+ cat +" yet.");
    } else if (miss1 == '0' && miss2 == '0'){
        Session["license"] = Request["licence"];
        Session["from"] = Request["from"];
        Session["to"] = Request["to"];
        Session["group"] = Request["group"];
        Session["class1"] = Request["class1"];
        Session["category1"] = Request["category1"];
        Session["class"] = Request["class"];
        Session["category"] = Request["category"];
        Response.Redirect("~/Questionnaire");
    }
}

突出顯示的行是:

var result = db.QuerySingle(sql5, myCDSID, username, cat);

我不明白錯誤頁面上提到的內容,而且找不到與我相同的情況下的人。 謝謝

好吧,我不能代表您的SQL查詢,因為我認為我從未見過這樣的查詢,但是根據我的經驗,當執行查詢並返回錯誤時,前提是完全是一個有效的sql查詢,這意味着必須“截斷”字符串,因為數據庫字段設置為存儲的字符數少於嘗試傳遞給該字段的字符數。

也就是說,作為示例,一個長60個字符的字符串被傳遞到設置為nvarchar(50)的字段中。 嘗試調整允許存儲在字符串字段中的字節數。

我不太確定這是否是您的問題,因為我本人還是很多,但是我只是以為這是一種可能性,因為這是我幾次見過的事情。

希望我能幫上忙!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM