2017-01-06 5 views
0

質問があります。いくつかの値をmySqlデータベースに挿入しようとしていますが、小さな問題があります。SQLデータベースに挿入する範囲外の可能性があります

 for (int i = 0; i < Chauffeurlijst.Count; i++) 
     { 
      db.Insert("Insert into route (Voertuigen_ID,Chauffeurs_ID,Planning_ID) VALUES(@voertuigid,@chauffeurid,@planningid", new List<KeyValuePair<string, object>> 
     { 

      new KeyValuePair<string, object>("@voertuigid", Voertuigenlijst[i].ID), 
      new KeyValuePair<string, object>("@chauffeurid", Chauffeurlijst[i].ID), 
      new KeyValuePair<string, object>("@planningid", planning.ID) 
     }); 
     } 

私は2つの注目すべき変数があります。voertuigenlijst(voertuigのリスト)とchauffeurlijst(運転手のリストを)しかし、問題は、それがVoertuigenlijstのカウントがChauffeurlijstの数よりも小さいことが可能かもしれないということです。同じかもしれない。運転手が小さくなると、voertuigenのリストの最後の項目がすでに割り当てられているため、プログラムはクラッシュしてしまいます。私がしたいのは、voertuigenlijst [i]がもはや存在しないときです。私はi-1をしたいと思っています。この問題の良い解決策はありますか?

+0

私はループの中をチェックして何をしたいのですか –

+0

私のデータベースで私はすべての運転手を1つのルートで運転しているので、 –

+0

私はそれが大きいかどうかをチェックする必要がありますあなたのChauffeurlijst.countよりもそれはあなたと関係がありませんDB –

答えて

1

これは、別のローカル変数を使用してVoertuigenlijstのインデックスを決定することによって行うことができます。基本的には、インデックスがあなたの範囲内にあるかどうかチェックしたいと思う。そうでない場合は、リスト内の最後のインデックスを使用します。たとえば - Chauffeurlijst.Count>Voertuigenlijst.Count場合

for (int i = 0; i < Chauffeurlijst.Count; i++) 
{ 
    var j = i < Voertuigenlijst.Count ? i : Voertuigenlijst.Count - 1; 
    db.Insert("Insert into route (Voertuigen_ID,Chauffeurs_ID,Planning_ID) VALUES(@voertuigid,@chauffeurid,@planningid", 
     new List<KeyValuePair<string, object>> 
     { 
      new KeyValuePair<string, object>("@voertuigid", Voertuigenlijst[j].ID), 
      new KeyValuePair<string, object>("@chauffeurid", Chauffeurlijst[i].ID), 
      new KeyValuePair<string, object>("@planningid", planning.ID) 
     }); 
} 

これはリストの最後のVoertuigを使用します。ただし、このコードでは、Voertuigenlijst.Count>Chauffeurlijst.Countの場合は処理されません。私はあなたがこの例を使用して良い解決策を考え出すことができると確信しています。また、空のケースを処理することもできます。

+0

こんにちはトム、私と一緒に答えと考えてくれてありがとう。答えはまさに私が必要とするものです。 Voertuigenlijst.count> Chauffeurlijst.Countの場合は不可能です。そして、両方の変数がこれの前にチェックされているので、空でないことも不可能です。 –

+0

素晴らしい!問題ない – Tom

関連する問題