2010-11-30 2 views
2

J'ai le code suivant et quand je l'exécute j'obtiens l'erreur suivante: System.Data.SqlClient.Exception (0x80131904) Chaîne ou binaire être terminéSystem.Data.SqlClient.Exception (0x80131904) Chaîne ou binaire serait terminée

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

Êtes-vous sûr que l'erreur n'est pas ou chaîne binaire serait tronquée? L'erreur tronquée signifie généralement que vous essayez d'insérer des données plus grandes que la taille d'une colonne. Je vais parcourir votre base de données et vérifier la taille de chacune de ces colonnes et les comparer aux données que vous avez tenté d'insérer. –

Répondre

16

Premièrement; ne pas concaténer l'entrée utilisateur; cela devrait être paramétré:

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

L'erreur signifie que le texte dans l'une des boîtes est plus long que la colonne déclarée. Développez la colonne dans la base de données ou validez la longueur du texte dans les zones avant de l'envoyer au serveur.

Obligatory XKCD reference

Exploits of a mom

+1

:), sympa, sympa, sympa – TalentTuner

+0

+1 pour la BD - fait ma journée :-) –

Questions connexes