我在用C#語言更新Access資料庫中的密碼時,在UPDATE陳述句中遇到了語法錯誤:
我在用C#語言更新Access資料庫中的密碼時,遇到了語法錯誤。
protected void Button1_Click(object sender, EventArgs e)。
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="
Server.MapPath("~/Database/registration.accdb"/span>)。
con.Open();
OleDbCommand cmd = new OleDbCommand()。
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"UPDATE into userdata(password)values('" TextBox1.Text "' where id=@id"。
cmd.ExecuteNonQuery()。
con.Close()。
Response.Write("alert('Password Reset Successfully done');")。
}
uj5u.com熱心網友回復:
這是因為你的SQL查詢不正確,這不是你在資料庫中更新資料的方式。它應該是這樣的:
query = "Update [tableName] SET [ColumnName] = 'Values', [ColumnName1] = 'Values2', ..." 。
你至少應該學習SQL語法的基礎知識,更多資訊這里
還有,你不應該串聯你的查詢,因為它將成為SQL注入攻擊的弱點,你至少應該使用引數化查詢
OleDbConnection con = new OleDbConnection()。
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="/span>
Server.MapPath("~/Database/registration.accdb"/span>)。
con.Open();
OleDbCommand cmd = new OleDbCommand()。
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"UPDATE yourTableName SET [yourColumnName] = @YourFirstValue, [secondColumnName] = @YourSecondValue WHERE [columnKey] = @ID"
cmd.Parameters.AddWithValue("@YourFirstValues", textbox1.Text)。
cmd.Parameters.AddWithValue("@YourSecondValue", textbox2.Text)。
cmd.Parameters.AddWithValue("@ID", textbox3.Text)。
cmd.ExecuteNonQuery()。
con.Close()。
Response.Write("alert('Password Reset Successfully done');") 。
uj5u.com熱心網友回復:
你必須修復你的查詢
"UPDATE userdata SET password=@password where id=@id" ;
并在cmd.ExecuteNonQuery()之前添加新的行
cmd.Parameters.AddWithValue("@id"/span>, id)。
cmd.Parameters.AddWithValue("@password", TextBox1.Text) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/317232.html
標籤:
上一篇:拒絕IIS中的所有客戶證書
