2010-09-14 63 views
1

我有代碼:過程給我在某些領域垃圾數據

string pathToSave = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
      string file = pathToSave + "\\" + "produkty_" + lang + ".csv"; 
      FileStream fs = new FileStream(file, FileMode.Create); 
      StreamWriter sw = new StreamWriter(fs); 
      // sw.WriteLine("id;Akt. 1/0;nazwa;kateg.;cena netto;stawka pod;cen suger.;wyprz.;o;d;d;nr kat.;dostępne od:;prod.;ilość;opis skróc;opis;konserwacja"); 

      OdbcCommand Qry = new OdbcCommand(query, con); 
      OdbcDataReader dataReader = Qry.ExecuteReader(); 

      while (dataReader.Read()) 
      { 
       //SELECT p.COUNTER, p.AKT, p.NAZWA, p.KATEGORIA, p.CENA_NETTO, p.STAWKA_VAT, 
       //p.CENA_SUGEROWANA, p.WYPRZ, p.O, p.COSTAM, p.D1, p.D2, p.NR_KAT, 
       //p.DOSTEPNE_OD, p.COSTAM2, p.PROD, p.COSTAM3, p.COSTAM4, p.COSTAM5, p.ILOSC, p.OPIS_SKRO, p.COMPOS, p.CONSERV 

       string counter   = String.Empty; 
       string AKT    = String.Empty; 
       string NAZWA   = String.Empty; 
       string KATEGORIA  = String.Empty; 
       string CENA_NETTO  = String.Empty; 
       string STAWKA_VAT  = String.Empty; 
       string CENA_SUGEROWANA = String.Empty; 
       string WYPRZ   = String.Empty; 
       string COSTAM   = String.Empty; 
       string D1    = String.Empty; 
       string D2    = String.Empty; 
       string NR_KAT   = String.Empty; 
       string DOSTEPNE_OD  = String.Empty; 
       string COSTAM2   = String.Empty; 
       string PROD   = String.Empty; 
       string COSTAM3   = String.Empty; 
       string COSTAM4   = String.Empty; 
       string COSTAM5   = String.Empty; 
       string ILOSC   = String.Empty; 
       string OPIS_SKRO  = String.Empty; 
       string COMPOS   = String.Empty; 
       string CONSERV   = String.Empty; 

       counter = dataReader["COUNTER"].ToString(); 
       AKT = dataReader["AKT"].ToString(); 
       NAZWA = dataReader["NAZWA"].ToString(); 
       KATEGORIA = dataReader["KATEGORIA"].ToString(); 
       CENA_NETTO = dataReader["CENA_NETTO"].ToString(); 
       STAWKA_VAT = dataReader["STAWKA_VAT"].ToString(); 
       CENA_SUGEROWANA = dataReader["CENA_SUGEROWANA"].ToString(); 
       WYPRZ = dataReader["WYPRZ"].ToString(); 
       COSTAM = dataReader["COSTAM"].ToString(); 
       D1 = dataReader["D1"].ToString(); 
       D2 = dataReader["D2"].ToString(); 
       NR_KAT = dataReader["NR_KAT"].ToString(); 
       DOSTEPNE_OD = dataReader["DOSTEPNE_OD"].ToString(); 
       COSTAM2 = dataReader["COSTAM2"].ToString(); 
       PROD = dataReader["PROD"].ToString(); 
       COSTAM3 = dataReader["COSTAM3"].ToString(); 
       COSTAM4 = dataReader["COSTAM4"].ToString(); 
       COSTAM5 = dataReader["COSTAM5"].ToString(); 
       ILOSC = dataReader["ILOSC"].ToString(); 
       OPIS_SKRO = dataReader["OPIS_SKRO"].ToString(); 
       COMPOS = dataReader["COMPOS"].ToString(); 
       CONSERV = dataReader["CONSERV"].ToString(); 
       //if (COMPOS.Contains(@"\")) 
       //{ 
       // COMPOS = ""; 
       //} 
       StreamWriter wr = new StreamWriter(@"c:\kan\fileOuput1.txt", true); 
       wr.WriteLine(
       counter + ";" + 
       AKT + ";" + 
       NAZWA + ";" + 
       KATEGORIA + ";" + 
       CENA_NETTO + ";" + 
       STAWKA_VAT + ";" + 
       CENA_SUGEROWANA + ";" + 
       WYPRZ + ";" + 
       COSTAM + ";" + 
       D1 + ";" + 
       D2 + ";" + 
       NR_KAT + ";" + 
       DOSTEPNE_OD + ";" + 
       COSTAM2 + ";" + 
       PROD + ";" + 
       COSTAM3 + ";" + 
       COSTAM4 + ";" + 
       COSTAM5 + ";" + 
       ILOSC + ";" + 
       OPIS_SKRO + ";" + 
       COMPOS + ";" + 
       CONSERV + ";" 
       ); 
       wr.Close(); 

當我將它保存到在COMPOS CSV文件,水土保持通報我得到一些垃圾數據,看起來有些領域等組合:/你知道爲什麼會發生嗎?這發生了一些行,總是不...

+1

爲什麼初始化所有這些局部變量爲空字符串,然後*然後*從dataReader中讀取?爲什麼不把它們放在一起?只是一個可讀性的想法......你也錯過了很多使用''語句來清理資源。 – 2010-09-14 07:15:08

回答

1

這裏有一些事情你可以嘗試:

  • 嘗試檢查在DB這些行。他們有效嗎?
  • 他們是否有任何特殊字符混淆了字段?
  • 調試datareader對象本身以檢查數據是否被正確提取,如果不檢查您的查詢。
+0

在db中,這些字段是空的。它是varchar字段。這看起來像我只有當我使用Visual Studio 2010,因爲在早期版本中有錯誤o.O – netmajor 2010-09-14 19:31:45

+0

@netmajor:你嘗試使用較新版本的Firebird嗎? – 2010-09-25 13:30:13

+0

不幸的是,我工作的公司並不想使用FB的新版本:/他們停留在1.5。我相信,在2.0中它應該解決... – netmajor 2010-09-25 20:37:33