1

このエラーが発生しました:

例外の詳細: 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);

エラー ページに記載されている内容が理解できず、同じケースに該当する人を見つけることができませんでした。ありがとう

4

1 に答える 1

0

そのようなクエリを見たことがないと思うので、SQLクエリについて話すことはできませんが、クエリが作成されたときにそのエラーが返されるのは私の経験です。有効な SQL クエリです。データベース フィールドは、フィールドに渡そうとしている文字よりも少ない文字を格納するように設定されているため、文字列を「切り捨てる」必要があったことを意味します。

つまり、例として、長さ 60 文字の文字列が nvarchar(50) に設定されたフィールドに渡されます。文字列フィールドに格納できるバイト数を調整してみてください。

これがあなたの問題かどうかは完全にはわかりません.私はまだ多くのことに慣れていないので.

私が助けてくれることを願っています!

于 2012-11-07T14:15:04.830 に答える