C# Problem beim speichern von datein aus einem Dataset

HI ihr,

öhm ja ich hab probleme mit diesem code der unten folgt er öffnet einen streamwriter der mir die daten aus einem dataset in ein textfile schreiben soll.

dies tut er auch aber leider nur sehr sporadisch wenn ich 10 datenzeilen hab schreibt er mal 5 mal 3 mal 8. was mach ich falsch ??? Wo liegt der fehler???

Ich hoffe ihr könnt mir helfen THX


CODESCHNIPSEL
_________________________________________

StreamWriter sw = new
StreamWriter(".\\EventExportDaten.txt",false);
dataView1.RowFilter = "Export = 0";

System.Data.DataRowView DRV;
for ( int I=0; I < dataView1.Count; I++ )
{
DRV = null;
DRV = dataView1;

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();

if (dataSet1 == null) { return; }
string filename = ".\\PEM_Daten.xml";
dataSet1.WriteXml( filename );
}
______________________________________
Code ENde


THX
 
Hallo

an der Lösung wäre ich auch sehr interessiert. Ich habe das gleiche Problem. Egal, wie mans macht, es werden immer nur unter 1024 Bytes wirklich aus dem Dataset gelesen und dann gibt es ne ArgumentException.

?(
 
Der Link von IveGotMail bringts auch nicht, ausser das die Datei dann so gross wird, wie der Buffer angelegt ist. Die Datei enthält aber ab dem 1000 Byte oder so, nur Null-Zeichen. Die exception gibts dann vorher noch gratis dazu.
 
hast du auch mal Flush() bzw AutoFlush=true ausprobiert ? auch mit dem normalen konstruktor ?

edit: mit normalen konstruktor meinte ich einen ohne angabe der buffer größe
 
Zu meinem Problem:

OK, alle wieder hinlegen, habe das problem gefixt (mit Hilfe von expertsexchange). Es muss natürlich pb.value++ oder pb.value=i heissen und NICHT pb.value+=i.
Ich hab mich überhaupt immer gewundert, warum der progressbar so schnell am Ende war, obwohl i erst bei 34 stand?!?

Vielen Dank für eure Hilfe.

==============================
ZUM Root-Problem dieses Threads:
Hast Du schon mal versucht, die Werte des Datasets vorher auf null zu prüfen, bevor Du sie lessen und wegschreiben willst?
==============================

Habe auch Flush() und AutoFlush probiert.

Was meinst Du mit "normalen Konstruktor"?

Aber jetzt kommts: In meiner Not habe ich ein Datagrid in einem neuen Formular erstellt. Weise das Dataset zu und versuchte dann über die Datagrid Items das Zeug in eine Datei zu schreiben-ZACK derselbe Fehler. Scheint wohl an der Kopplung mit dem Dataset zu hängen.
 
Zurück
Oben