2017-10-18 4 views
1

アカウントを含むテーブルをいくつか持っています 私は自分の望むものを勝ち取って使っています。このケースを自動モードに変更する方法はありますか?多くの数字があり、書き込むのに時間がかかります。子会社元帳が10001 元帳ID 101でされるように子会社元帳が10101 元帳IDが205であるだろうので、子会社元帳がされるように いくつかの例 元帳IDは、100である20501 は、ここに私のコードですこのケースをforループに変更するには

public static decimal accountDefinitiveID { get; set; } 
 
    
 
public static void GetDefinitiveID(decimal LedgerID) 
 
{ 
 
    var query = database.Database.SqlQuery<tbl_AccountDefinitive>("Select Top(1) *From tbl_AccountDefinitive Where LedgerID='" + LedgerID + "' Order By DefinitiveID DESC"); 
 
    var result = query.ToList(); 
 
    if (result.Count == 1) 
 
    { 
 
     accountDefinitiveID = result[0].DefinitiveID + 1; 
 
    } 
 
    if (result.Count == 0) 
 
    { 
 
     switch (Convert.ToInt32(LedgerID)) 
 
     { 
 
      case 100: 
 
       accountDefinitiveID = 10001; 
 
       break; 
 
      case 101: 
 
       accountDefinitiveID = 10101; 
 
       break; 
 
      case 102: 
 
       accountDefinitiveID = 10201; 
 
       break; 
 
      case 200: 
 
       accountDefinitiveID = 20001; 
 
       break; 
 
      case 201: 
 
       accountDefinitiveID = 20101; 
 
       break; 
 
      case 305: 
 
       accountDefinitiveID = 30501; 
 
       break; 
 
      case 400: 
 
       accountDefinitiveID = 40001; 
 
       break; 
 
      case 509: 
 
       accountDefinitiveID = 50901; 
 
       break; 
 
      case 600: 
 
       accountDefinitiveID = 60001; 
 
       break; 
 
      case 700: 
 
       accountDefinitiveID = 70001; 
 
       break; 
 
      case 800: 
 
       accountDefinitiveID = 80001; 
 
       break; 
 
      case 900: 
 
       accountDefinitiveID = 90001; 
 
       break; 
 
     } 
 
    } 
 
}

答えて

2

あなただけの値の最後に01を追加したい場合は、次の

public static decimal accountDefinitiveID { get; set; } 

public static void GetDefinitiveID(decimal LedgerID) 
{ 
    var query = database.Database.SqlQuery<tbl_AccountDefinitive>("Select Top(1) *From tbl_AccountDefinitive Where LedgerID='" + LedgerID + "' Order By DefinitiveID DESC"); 
    var result = query.ToList(); 

    if (result.Count == 1) 
    { 
     accountDefinitiveID = result[0].DefinitiveID + 1; 
    } 
    else 
    { 
     accountDefinitiveID = Convert.ToInt32(LedgerID) * 100 + 1; 
    } 
} 
+0

@Ivarの方が最初に感謝しました。ありがとう –

関連する問題