Problem beim speichern von daten aus einem Dataview in ein txt file


C

crypt

Moin jungs,

so ich hab ein little problem und zwar möchte ich gerne daten aus einem dataview speichern und zwar in einen *.txt file. dies macht mein proggy auch doch nur sehr sporadisch. denn immer wenn ich auf speicher geh schreibt er mal 5 von 10 mal 3 von 10 mal 8 von 10 einträgen usw.

ich hätte doch aber gerne alle daten gespeichert. wo kann denn der fehler liegen

so was noch is ich hab das ers mit einer foreach schleife gamcht da kamm beim speichern von merh als 2 beiträgen immer die fehlermeldung von VS "in zeil ... wurde kein eintrag gefunden" und er bricht ab nun hab ich es eben mit einer normalen for schleife lösen wollen aber jetzt geschieht eben das oben beschriebene

so hier mal der codeschnipsel der speicherprozedur (kann das auch an was anderem liegen als an der speicherprozedur?)
Code:
StreamWriter sw = new          
StreamWriter(".\\textdatei.txt",false); 
dataView1.RowFilter = "Export = 0"; 
          
System.Data.DataRowView DRV; 
for ( int I=0; I < dataView1.Count; I++ ) 
 { 
  DRV = null; 
  DRV = dataView1[I]; 

  if ( DRV != null ) 
  { 
   sw.Write (DRV["Nummer"].ToString()); 
   sw.Write (DRV["Tag"].ToString()); 
   sw.Write (DRV["Datum"].ToString() +";"); 
   sw.Write (DRV["Veranstalltungsname"].ToString() +";"); 
   sw.Write (DRV["Ort"].ToString() +";"); 
   sw.Write (DRV["Extras"].ToString() +";"); 
   sw.Write (DRV["Eintritt"].ToString() +";"); 
   sw.Write (DRV["Veranstallter"].ToString() +";"); 
   sw.Write (DRV["Art1"].ToString() +";"); 
   sw.Write (DRV["Art2"].ToString() + ";"); 
   sw.Write (DRV["Landkreis"].ToString() +";"); 
   sw.Write (DRV["Bezirk"].ToString() +";"); 
   sw.Write (DRV["Zahl"].ToString()); 
   sw.Write (DRV["Musik"].ToString() + ";");       
   sw.Write (DRV["Benutzername"].ToString()); 
   sw.Write (DRV["Hyperlink"].ToString() + ";"); 
   sw.Write (DRV["Status"].ToString());          
   sw.Write (DRV["TopEvent"].ToString() + ";"); 
   sw.Write (DRV["Ansprechpartner"].ToString() + ";"); 
   sw.Write (DRV["Name"].ToString()); 
   sw.Write (DRV["Email"].ToString() + ";"); 
   sw.WriteLine (DRV["Telefon"].ToString() + ";"); 
   DRV [ "Export" ] = "1"; 
                
   } 
  } 
    
dataView1.RowFilter = ""; 
sw.Close(); 
          
}
thx schon mal für hilfe
 

F_P_aus_K

Erfahrenes Mitglied
Hallo,
ich bin mir zwar jetzt nicht sicher, weil ich das jetzt nicht ausprobieren kann aber hast du beachtet dass 'Count' 0-Terminiert ist?

die Zeile:
for ( int I=0; I < dataView1.Count; I++ )

vielleicht mal so ändern
for ( int I=0; I < dataView1.Count-1; I++ ) .

Gruss
frank