Danke f�r Deine Hilfe leider hab ich jetzt den n�chsten Fehler es erscheint folgende 
meldung:

System.IndexOutOfRangeException: SqlParameter mit ParameterName '@kdnr' ist nicht in 
SqlParameterCollection enthalten.

und das ist der code dazu

    SQLKundenInsert = "INSERT INTO Test_Kundendaten 
(kdnr,firma,vorname,nachname,titel,adresse,plz,ort,tel,fax,email,skript,priority) 
VALUES 
(@kdnr,@firmenname,@vorname,@nachname,@titel,@adresse,@plz,@ort,@tel,@fax,@email,@skript,@priority)";
    cmd2 = new SqlCommand(SQLKundenInsert, objConnection);
    for(int j = 0; j <= i; j++)
    {
        cmd2.Parameters["@kdnr"].Value = kdnr[j];
        cmd2.Parameters["@firmenname"].Value = firmenname[j];
        cmd2.Parameters["@vorname"].Value = vorname[j];
        cmd2.Parameters["@nachname"].Value = nachname[j];
        cmd2.Parameters["@titel"].Value = titel[j];
        cmd2.Parameters["@adresse"].Value = adresse[j];
        cmd2.Parameters["@plz"].Value = plz[j];
        cmd2.Parameters["@ort"].Value = ort[j];
        cmd2.Parameters["@tel"].Value = tel[j];
        cmd2.Parameters["@fax"].Value = fax[j];
        cmd2.Parameters["@email"].Value = email[j];
        cmd2.Parameters["@skript"].Value = skript[j];
        cmd2.Parameters["@priority"].Value = priority[j];
        cmd2.ExecuteNonQuery();
        }
    }

ich komm einfach nicht drauf, was ich jetzt falsch gemacht hab?

thx
Gerald.

-----Urspr�ngliche Nachricht-----
Von: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
Gesendet: Montag, 12. August 2002 20:47
An: aspDEdotnet
Betreff: [aspdedotnet] AW: [aspdedotnet] AW:
System.Data.SqlClient.SqlException: Zeichenfolgen- oder Bin�rdaten
werden abgeschnitten. Die Anweisung wurde beendet.


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

| [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

Antwort per Email an