Hallo!
> Noch ein Detail, wenn die Schleife das erste aml durchlaufen
> wird funktioniert es noch, erst beim 2. Mal kommt dieser Fehler.
Das muss mit den lokalen Variablen (kdnr[j], firmanname[j], ...)
zusammenh�ngen. Kannst Du nicht die Anzahl der Elemente in der Liste
pr�fen?
for(int j = 0; j < kdnr.Count; j++)
{
...
}
> hmm was meinst du mit SP? das ist jedenfalls der vollst�ndige
> programmteil
"SP" hei�t "Stored Procedure". ;-)
> string nonquery;
> SqlCommand cmd2;
> for(int j=0;j<=i;j++)
> {
> SQLKundenInsert = "INSERT INTO Test_Kundendaten
> (kdnr,firma,vorname,nachname,titel,adresse,plz,ort,tel,fax,ema
> il,skript,priority) VALUES (" + Convert.ToInt32(kdnr[j]) +
> ",'" + firmenname[j] + "','" + vorname[j] + "','" +
> nachname[j] + "','" + titel[j] + "','" + adresse[j] + "','" +
> plz[j] + "','" + ort[j] + "','" + tel[j] + "','" + fax[j] +
> "','" + email[j] + "'," + Convert.ToInt32(skript[j]) + "," +
> Convert.ToInt32(priority[j]) + ")";
>
> cmd2 = new SqlCommand(SQLKundenInsert, objConnection);
> nonquery = cmd2.ExecuteNonQuery().ToString();
> }
Auch unter .NET gibt es wieder Probleme mit selbst zusammengestellten
SQL-Befehlen. Ich verstehe nicht, warum hier die Werte erst nach Int32
konvertiert und dann zu Zeichenketten zusammengesetzt werden.
Normalerweise macht man das so:
SQLKundenInsert = "INSERT INTO ... (kdnr, firma, ...) VALUES (@kdnr,
@firma)";
SQLCommand = new SqlCommand(SQLKundenInsert, SqlConnection);
for(int i = 0; j < kdnr.Count; j++)
{
SQLCommand.Parameters["@kdnr"].Value = kdnr[j]
SQLCommand.Parameters["@firma"].Value = firmenname[j]
SQLCommand.ExecuteNonQuery();
}
Wenn die Werte immer �ber Parameter �bergeben werden, hast Du Code, der
unabh�ngig von Gebietsschemata und lokalen Konvertierungsoptionen ist.
Aus diesem Grunde definiert man die SP (Stored Procedure) auch direkt in
der Datenbank und nicht im Quellcode der Applikation.
Da f�llt mir noch ein, dass "ExecuteNonQuery" nichts zur�ck gibt (au�er
�ber Parameter). M�glicherweise ist das auch eine Fehlerursache. Wenn Du
die Anzahl betroffener Datens�tze (Records affected) haben m�chtest,
solltest "ExecuteScalar" verwenden.
Freundliche Gr��e
Joachim van de Bruck
| [aspdedotnet] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp