2016-10-11 10 views
0

私は困惑しています。私は、3つのデータセットからのデータをテキストファイルに書き込んでいますが、ファイルに特定のテーブルを書き込んでいるときに重複しているので、その理由を理解できません。 2012年8月22日:ストリームライターがファイルに重複した行を書き込む

ここでここでファイルに

 public void writeCharge2(StreamWriter sw, string dos1, int i) 
    { 
     getCharges(dos1, SqlCon); 
     foreach (DataRow row in chargeTable.Rows) 
     { 
      for (int n = 0; n <= chargeTable.Rows.Count -1; n++) 
      {      
       ChargeLine = chargeTable.Rows[n][0].ToString(); 

       writeCharge(sw, dos1, i, ChargeLine); 
       sw.WriteLine(); 
       payChart.Reset(); 
       payGraph.Reset(); 
      } 

     } 
     chargeTable.Reset(); 
    } 

    public void writeCharge(StreamWriter sw, string dos2, int i, string CPTLine) 
    { 
     getPayments(ChargeLine, SqlCon, dos2); 
     string description = getDesc(CPTLine, SqlCon); 
     sw.WriteLine(" Description: " + CPTLine + " - " + description); 
     sw.WriteLine("-----------Payments-----------"); 

     if (i < payGraph.Rows.Count) 
     { 
      foreach (DataRow row in payGraph.Rows) 
      { 
       for (i = 0; i < row.ItemArray.Length -1; i++) 
       { 
        DateTime payDate = Convert.ToDateTime(payGraph.Rows[i][0].ToString()); 
        string payDate1 = payDate.ToString("MM/dd/yyyy"); 
        decimal money = Convert.ToDecimal(payGraph.Rows[i][1].ToString()); 
        string money1 = money.ToString("C"); 
        string payer = payGraph.Rows[i][2].ToString(); 

        sw.Write("Payment Date: " + payDate1 + " | "); 
        sw.Write("Amount: " + money1 + " | "); 
        sw.Write("Payer: " + payer); 
        sw.WriteLine(); 
       } 

       sw.WriteLine(); 
      } 
     } 

    } 

     public void writeData(StreamWriter sw) 
    { 
     clearTables(); 
     getDos(SqlCon); 
     int i = 0; 

     foreach(DataRow row in servicetable.Rows) 
     { 
      string dosNow = Convert.ToString(servicetable.Rows[i][0]); 

      setupPat(sw, i); 
      writeCharge2(sw, dosNow, i); 
      sw.WriteLine(Environment.NewLine); 
       i++; 

     } 

を書くためのコードだが、それはあなたがサービスの

日を書き込まれている重複した行を見ることができるファイルに書き込まれています方法です
説明:76775 - US RETROPERITALAL LIMITED
-----------お支払い-----------
お支払い日:09/10/2012 |金額:$ 23.14 |支払人:保険
支払日:09/24/2012 |金額:$ 5.78 |支払人:保険

支払日:09/10/2012 |金額:$ 23.14 |支払人:保険
支払日:09/24/2012 |金額:$ 5.78 |支払:保険


説明:93922 - 四肢非侵襲的な1 OR 2 LEVELS
----------- -----------支払い
支払日:09/10/2012 |金額:$ 9.74 |支払人:保険
支払日:09/24/2012 |金額:$ 2.43 |支払人:保険

支払日:09/10/2012 |金額:$ 9.74 |支払人:保険
支払日:09/24/2012 |金額:$ 2.43 |支払:保険


説明:76775 - 米国の後腹膜限定
----------- -----------支払い
支払日:9月10日/ 2012 |金額:$ 23.14 |支払人:保険
支払日:09/24/2012 |金額:$ 5.78 |支払人:保険

支払日:09/10/2012 |金額:$ 23.14 |支払:保険
支払日:2012年9月24日|金額:$ 5.78 |支払人:保険

+0

この行を削除します。for(i = 0; i GSP

答えて

1

これは、foreachのwriteCharge2関数内でループが必要ないためです。 foreachを使用して行を繰り返すと、各繰り返しですべての行が印刷されるため、2行、3行〜3回など2度印刷されます。

関連する問題