私はC#でPoint of Salesシステムを構築していますが、オブジェクトからデータベースへのインターフェイスのデータを渡しています。Sqlコマンド構文エラー:System.Data.SqlClient.SqlException: '不正な構文'、 '。'
更新しようとするたびに、cmd.CommandTextに構文エラーがスローされます。
private void btnUpdate_Click(object sender, EventArgs e) //UPDATE FUNCTION//
{
user_management_system user_mgnt = new user_management_system();
user_mgnt.Username = txt_userName.Text;
user_mgnt.Password = txt_password.Text;
user_mgnt.First_name = txt_firstName.Text;
user_mgnt.Last_name = txt_lastName.Text;
user_mgnt.Nationality = txt_nationality.Text;
user_mgnt.Email = txt_email.Text;
user_mgnt.Age = (txt_age.Text);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE userlogin SET password = ('"+ user_mgnt.Password + "',first_name='" + user_mgnt.First_name + "',last_name='" + user_mgnt.Last_name + "',age='" + user_mgnt.Age +
"',nationality='" + user_mgnt.Nationality + "',email='" + user_mgnt.Email + "', WHERE username ='"+ user_mgnt.Username+ "')";
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Data has been successfuly updated");
displaydata();
このフォームに従ってください、あなたが悪いの時間を持ってしようとしています。 SQLインジェクション、フォーマットエラーなど – LarsTech
最初に行うことは、そのようなSQLの構築をやめることです。常にパラメータ化されたSQLを使用します。他のものとは別に、実際に使用しているSQLをもっと簡単に見ることができます。 (その後、SQLインジェクション攻撃が取り除かれています)次に、パスワードをプレーンテキストで保存しているように見えます。これをやめることを強くお勧めします。 –