[英]Not updating values in access database
protected void Button2_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\sandesh.k\Documents\PARAM_REP.accdb;";
OleDbCommand com = new OleDbCommand();
com.CommandText = "UPDATE LOGI SET [PASSWORD]=@PASS,NAME=@NAME,CAPABILITY=@CAPABLE WHERE ID=@ID";
com.Parameters.AddWithValue("@ID", TextBox2.Text);
com.Parameters.AddWithValue("@PASS", TextBox7.Text);
com.Parameters.AddWithValue("@NAME", TextBox5.Text);
com.Parameters.AddWithValue("@CAPABLE", Convert.ToInt32(TextBox6.Text));
con.Open();
com.Connection = con;
com.ExecuteNonQuery();
con.Close();
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('REPORT CREATED SUCCESSFULLY')</script>");
}
您沒有告訴使用確切是什么錯誤,但是..
OleDbCommand
不支持命名參數。 其實是支持,但只是不在乎他們的名字。 唯一的問題是他們的訂單。
按照您在命令中定義的順序設置參數;
com.Parameters.AddWithValue("@PASS", TextBox7.Text);
com.Parameters.AddWithValue("@NAME", TextBox5.Text);
com.Parameters.AddWithValue("@CAPABLE", Convert.ToInt32(TextBox6.Text));
com.Parameters.AddWithValue("@ID", TextBox2.Text);
也可以使用using
語句自動處理連接和命令,而不是手動調用Close
方法。 並且不要使用AddWithValue
方法。 有時它可能會產生意外和令人驚訝的結果 。 使用Add
方法重載來指定參數類型及其大小。
using(var con = new OleDbConnection())
using(var com = con.CreateCommand())
{
// Set your CommandText property.
// Add your parameters with Add method in the same order that you defined.
// Open your connection.
// Execute your query.
}
另外,我強烈懷疑您的ID
列應為數字值,而不是基於其名稱的字符類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.