2012-02-11 5 views
2

J'essaie de mettre à jour ma base de données, c'est-à-dire un fichier MS Access, je souhaite mettre à jour ma table en prenant les valeurs des zones de texte mais je ne peux pas écrire correctement.Requête pour mettre à jour les valeurs

Quelqu'un peut-il m'aider s'il vous plaît à écrire une requête de mise à jour appropriée?

string strconn4 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|pay.accdb"; 

OleDbConnection sqlconn4 = new OleDbConnection(strconn4); 
sqlconn4.Open();  
OleDbCommand ocmd = new OleDbCommand("UPDATE fees SET fname=" + Convert.ToString(textBox2.Text) + ",lname=" + Convert.ToString(textBox3.Text) + ",amtpayd=" + Convert.ToString(textBox4.Text) + ",amtleft=" + Convert.ToString(textBox5.Text) + ",disc=" + Convert.ToString(textBox6.Text) + ",pdate=" + Convert.ToString(dateTimePicker3.Text) + ",rdate=" + Convert.ToString(dateTimePicker1.Text) + ",WHERE memid=" + Convert.ToString(textBox1.Text), sqlconn4); 
+4

Veuillez publier la requête que vous avez essayée et l'erreur qu'elle déclenche. (Et des informations suffisantes sur la table sous-jacente afin que les gens puissent comprendre ce que vous essayez de faire.) – Mat

+1

Aussi, si vous publiez une requête SELECT, cela pourrait nous donner plus d'informations. –

+0

hii j'ai mis à jour mon problème ... s'il vous plaît aidez-moi –

Répondre

1

Votre code est sujette à SQL injection qui est un très grave problème de sécurité!

Vous devez utiliser des requêtes paramétrées à la place.

Quelques liens sur la façon de construire de telles requêtes, y compris des références et des échantillons:

0

Vous aimez cette

string sql=string.Format("UPDATE Table1 SET column1='{0}',column2='{1}' where id={2}",tbx1.text,tbx2.text,tbx3.text); 
    SqlConnection conn = new SqlConnection(); 
    conn.ConnectionString = strconn4; 
     SqlCommand cmd = new SqlCommand(); 
      cmd.CommandText = sql; 
      cmd.Connection = conn; 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
    conn.Close(); 
Questions connexes