嗨,我有麻煩做一個更新按鈕爲我的網站,我試過很多方法,但似乎無法推測出來。我希望用戶輸入他們希望更新的客戶端的ID號碼,然後根據他們希望更改的列填寫文本框。如何更新數據庫記錄VS12 C#
這裏是我的代碼:
private static OleDbConnection GetConnection()
{
String connString;
connString = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\Users\Wisal\Documents\Visual Studio 2012\WebSites\WebSite3\registration-Db.mdb";
return new OleDbConnection(connString);
}
protected void clientUpdate_Click(object sender, EventArgs e)
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:/Users/Wisal/Documents/Visual Studio 2012/WebSites/WebSite3\registration-Db.mdb");
cn.Open();
OleDbCommand cmd = new OleDbCommand("(Update client set id = " + txt_id.Text + " ,[name] ='" + txt_name.Text + " ,[password] ='" + txt_password.Text +" where id= '" + txt_id.Text + "",cn);
cmd.ExecuteNonQuery();
cn.Close();
}
}
我也曾經嘗試這樣做:「語法錯誤在聯合查詢」
private static OleDbConnection GetConnection()
{
String connString;
connString = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\Users\Wisal\Documents\Visual Studio 2012\WebSites\WebSite3\registration-Db.mdb";
return new OleDbConnection(connString);
}
protected void clientUpdate_Click(object sender, EventArgs e)
{
OleDbConnection myConnection = GetConnection();
myConnection.Open();
OleDbCommand cmd = new OleDbCommand("(Update client set id = " + txt_id.Text + " ,[name] ='" + txt_name.Text + " ,[password] ='" + txt_password.Text +" where id= '" + txt_id.Text + "",myConnection);
cmd.ExecuteNonQuery();
myConnection.Close();
}
}
有了這一個,我得到
我已經試過這也:
protected void clientUpdate_Click(object sender, EventArgs e)
{
OleDbConnection myConnection = GetConnection();
myConnection.Open();
OleDbCommand cmd = new OleDbCommand("Update client set [name] = ? [password] = ? where id= ?", myConnection);
cmd.Parameters.AddWithValue("", txt_id.Text);
cmd.Parameters.AddWithValue("", txt_name.Text);
cmd.Parameters.AddWithValue("", txt_password.Text);
cmd.ExecuteNonQuery();
myConnection.Close();
}
}
你應該抓住任何異常拋出,但似乎你的SQL字符串缺少許多'(單引號)。 –
您有幾個巨大的安全問題。您需要使用參數化查詢,並且密碼永遠不應以明文形式存儲在數據庫中(請改爲使用單向哈希值)。 – mason
看看你的CommandText,這很可能是你的異常的原因。 – KiwiPiet