Deklarationsfrage Ausserhalb innerhalb der Schlaufe

12/01/2010 - 15:15 von Tamara Mikes | Report spam
Salü alle zusammen

In einer foreach Schleife will ich Daten in eine Datenbank schreiben. Dazu
habe ich vor der Schleife eine DataTable gebildet welche ich nach der
Schleife speichern will.

der stark vereinfachte Code schaut so aus:

xDataSet.tblErgebnisseTableAdapter te = new
xDataSet.tblErgebnisseTableAdapter();
foreach(alle Messergebniss in Thermometer){
DataRow r = te.NewRow();
r = Messung(Messergebniss);
te.Rows.Add(r)
}
Update

Jetzt muss ich das Programm àndern weil aufgrund einer Entscheidung vom
Anwender die Daten in unterschiedliche Tabellen geschrieben werden müssen.
Ich würde folgendes wollen:

switch (vAuswahl){
case 1:
xDataSet.tblErgebnisseTableAdapter te = new
xDataSet.tblErgebnisseTableAdapter();
break;
case 2:
yAlphaDataSet.tblPruefungTableAdapter te = new
yAlphaDataSet.tblPruefungTableAdapter();
break;
}
foreach(alle Messergebniss in Thermometer){
DataRow r = te.NewRow();
r = Messung(Messergebniss);
te.Rows.Add(r)
}
Update

Mein Problem ist aber, dass nun mein te nur innerhalb des Switch gültig ist
und nicht mehr im foreach. Wie löse ich mein Problem, dass mein te nicht nur
im ersten Block gültig ist?

Herzlichen Dank für Unterstützung.

Viele Grüsse
Tamara
 

Lesen sie die antworten

#1 Roman Wagner
12/01/2010 - 16:04 | Warnen spam
Hallo,
in etwa so.

xDataSet.tblErgebnisseTableAdapter te = null;

switch (vAuswahl){
  case 1:
        te = new xDataSet.tblErgebnisseTableAdapter();
        break;
  case 2:
        te = new yAlphaDataSet.tblPruefungTableAdapter();
        break;
default: break;
}

if(te != null) {
foreach(alle Messergebniss in Thermometer){
   DataRow r = te.NewRow();
   r = Messung(Messergebniss);
   te.Rows.Add(r)
}
}

Ähnliche fragen