2010-09-14 65 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