2010-11-30 9 views
2

Ich habe den folgenden Code und wenn ich es ausführen, erhalte ich die folgenden Fehler: System.Data.SqlClient.Exception (0x80131904) Zeichenfolge oder binäre würde beendet werdenSystem.Data.SqlClient.Exception (0x80131904) Zeichenfolge oder binär würde beendet

form1.con.Open(); 
command = new SqlCommand("UPDATE sucursale SET nume_sucursala='" + textBox1.Text.Trim() + "',sucursala_coord='" + textBox3.Text.Trim() + "',mida='" + textBox4.Text.Trim() + "',flex='" + textBox5.Text.Trim() + "',nr_sucursala='" + textBox6.Text.Trim() + "',director='" + textBox7.Text.Trim() + "',tel_director='" + textBox8 + "',director_adj='" + textBox9.Text.Trim() + "',tel_director_adj='" + textBox10.Text.Trim() + "',adresa='" + textBox14.Text.Trim() + "',telefon='" + textBox15.Text.Trim() + "',fax='" + textBox16.Text.Trim() + "',u1_days='" + textBox26.Text.Trim() + "',u1_company='" + textBox17.Text.Trim() + "',u2_days='" + textBox27.Text.Trim() + "',u2_company='" + textBox18.Text.Trim() + "',u3_days='" + textBox28.Text.Trim() + "',u3_company='" + textBox19.Text.Trim() + "',u4_days='" + textBox29.Text.Trim() + "',u4_company='" + textBox20.Text.Trim() + "',u5_days='" + textBox30.Text.Trim() + "',u5_company='" + textBox21.Text.Trim() + "',u6_days='" + textBox31.Text.Trim() + "',u6_company='" + textBox22.Text.Trim() + "',retea_interna='" + textBox23.Text.Trim() + "',timer='" + textBox24.Text.Trim() + "',program_clienti='" + textBox25.Text.Trim() + "',contact_extra='" + textBox11.Text.Trim() + "',functie_contact_extra='" + textBox12.Text.Trim() + "',telefon_contact_extra='" + textBox13.Text.Trim() + "' WHERE nr_sucursala = '" + comboBox3.SelectedItem + "'", form1.con); 
form1.da2.UpdateCommand = command; 

form1.da2.Update(form1.ds2, "sucursale"); 
form1.con.Close(); 
+0

Sind Sie sicher, dass der Fehler nicht Zeichenfolge oder Binär würden abgeschnitten werden? Der abgeschnittene Fehler bedeutet normalerweise, dass Sie versuchen, Daten einzufügen, die größer als die Größe einer Spalte sind. Ich würde Ihre Datenbank durchsuchen und die Größe jeder dieser Spalten überprüfen und sie mit den Daten vergleichen, die Sie einfügen wollten. –

Antwort

16

Erstens; Benutzereingaben nicht verketten; das soll parametriert werden:

using(var cmd = conn.CreateCommand()) { 
    cmd.CommandText = @" 
UPDATE [SomeTable] 
SET [SomeColumn] = @someColumn 
WHERE [Id] = @id"; 
    cmd.Parameters.AddWithValue("someColumn", usersNastyText); 
    cmd.Parameters.AddWithValue("id", recordId); 
    cmd.ExecuteNonQuery(); 
} 

Der Fehler bedeutet, dass der Text in einen der Box ist länger als die angegebene Spalte. Erweitern Sie entweder die Spalte in der Datenbank oder überprüfen Sie die Länge des Textes in den Feldern, bevor Sie sie an den Server senden.

Obligatory XKCD reference

Exploits of a mom

+1

:), nett, nett, nett – TalentTuner

+0

+1 für den Comic - machte meinen Tag :-) –

Verwandte Themen