2016-11-24 9 views
0

をangularjs私はAccountController.csで私の挿入方法がうまく機能して私のAccountController.csで私のangularjs controller冗長性 - のasp.net MVC

AccountController 
angular.forEach($scope.accountList,function (account) { 

     AccountService.insertNewAccount(account).then(function (msg) 
      //some codes 
     }); 
}); 

int accountNo = GenerateRandomNo(); 
var chk = db.sp_check_account_number(accountNo).ToList(); //check if there's redudancy in generated AccountNumber in Account Table 
var cnt = chk.Count; 
    if (cnt < 1)//If there is no redundancy 
    { 
     db.InsertNewAccount(name, accountNo); 
    } 
    else 
    { 
     //if there's redundancy generate another account number 
     while(cnt!=0) 
     { 
      accountNo = GenerateRandomNo(); 
      chk = db.GetROPAAccount(accountNo).ToList(); 
      cnt = chk.Count; 
     } 
     db.InsertNewAccount(name, accountNo); 
    } 

    db.SaveChanges(); 

foreach loopを得たが、問題は、データが挿入されたときに$scope.accountList配列から来た、AccountNumberがテーブルレコードに挿入されて多くの冗長性を持っていた。私は自分のforeach loopがランダムにデータを挿入したことを知り、理由を知らない。私はまた私のsp_check_account_numberをチェックし、うまくいきます。誰かがこれで私を助けることができますか? :(

+0

「多くの冗長性を持っている」とはどういう意味ですか? – Enigmativity

+0

'GenerateRandomNo()'のコードを見ることはできますか? – Enigmativity

+0

例10個のレコードを挿入しました。挿入されたアカウント番号の大半は重複または3重になっています。そして私はなぜそれが起こるのか分からない。私はストアドプロシージャ 'sp_check_account_number'を得て、生成されたアカウント番号に重複があるかどうかをチェックする。 – pryxen

答えて

1

あなたの問題はGenerateRandomNo方法である現在、あなたがこれを持っている:

public int GenerateRandomNo() 
{ 
    int min = 1000; 
    int max = 9999; 
    Random rdm = new Random(); 
    return rdm.Next(min, max); 
} 

あなたの問題があります - Random rdm = new Random(); - それは矢継ぎ早に呼ばれていた場合の値が「上がらないので、あなたは、多くの場合、同じシード値を取得します。ランダムtはクラスレベルの変数として外にこの行を移動し、もう一度試して

この行います。EXTとして、また

private Random rdm = new Random(); 
public int GenerateRandomNo() 
{ 
    int min = 1000; 
    int max = 9999; 
    return rdm.Next(min, max); 
} 

をあなたは、入力パラメータとして10009999を使用すると、1000から9998までの数値を生成しています。第2のパラメータは、排他的の最大値です。

+0

あなたは命の恩人です。どうもありがとうございます。しかし、なぜ$ scope.accountList配列のデータがランダムにデータベースに挿入されたのだろうか? – pryxen

+0

@VernonMaceda - 「データベースにランダムに挿入される」とはどういう意味ですか? – Enigmativity

+0

私はいくつかのレコード(例:Test1、Test2、Test3 ...)をテストしました。私の 'foreach loop'では、データはそのインデックスに基づいて挿入されるべきですが、レコードの挿入が完了すると、レコードは順不同で挿入されます(例えばTest3、Test1、Test2)。 – pryxen