[英]Cannot update Access database in C#
我試圖建立一個更新按鈕,我可以在其中編輯Textbox
的數據。 我正在使用Access數據庫,但遇到一些問題,因此無法更新它。
貝婁是我的代碼:
private void cmdUpdate_Click(object sender, EventArgs e)
{
try
{
con = new OleDbConnection(cs.DBConn);
con.Open();
string queryUpdate = @"UPDATE tblFixing SET Title=@Title, CodeBefore=@CodeBefore, CodAfter=@CodAfter, Exp=@Exp, Example=@Example, Notes=@Notes WHERE FixID=@FixID";
cmd = new OleDbCommand(queryUpdate);
cmd.Connection = con;
cmd.Parameters.Add(new OleDbParameter("@FixID", OleDbType.WChar, 20, "FixID"));
cmd.Parameters.Add(new OleDbParameter("@Title", OleDbType.WChar, 255, "Title"));
cmd.Parameters.Add(new OleDbParameter("@CodeBefore", OleDbType.WChar, 0, "CodeBefore"));
cmd.Parameters.Add(new OleDbParameter("@CodAfter", OleDbType.WChar, 0, "CodAfter"));
cmd.Parameters.Add(new OleDbParameter("@Exp", OleDbType.WChar, 0, "Exp"));
cmd.Parameters.Add(new OleDbParameter("@Example", OleDbType.WChar, 0, "Example"));
cmd.Parameters.Add(new OleDbParameter("@Notes", OleDbType.WChar, 255, "Notes"));
cmd.Parameters["@FixID"].Value = cmbID.Text.Trim();
cmd.Parameters["@Title"].Value = txtTitulo.Text.Trim();
cmd.Parameters["@CodBefore"].Value = rchCodBefore.Text.Trim();
cmd.Parameters["@CodAfter"].Value = rchCodAfter.Text.Trim();
cmd.Parameters["@Exp"].Value = rchExplicacao.Text.Trim();
cmd.Parameters["@Example"].Value = rchExemplo.Text.Trim();
cmd.Parameters["@Notes"].Value = rchNotas.Text.Trim();
cmd.ExecuteNonQuery();
MessageBox.Show("Successful updated", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error\nDetails: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
我調試代碼,它可以執行所有操作,但是數據不會更新。 我該怎么辦?
OleDB不使用命名參數。 它們以索引順序出現。
@FixID
參數是添加到集合中的第一個參數 ,但是當您查看sql字符串時,它是字符串中的最后一個參數 。
更改參數順序:
cmd.Parameters.Add(new OleDbParameter("@Title", OleDbType.WChar, 255, "Title"));
cmd.Parameters.Add(new OleDbParameter("@CodeBefore", OleDbType.WChar, 0, "CodeBefore"));
cmd.Parameters.Add(new OleDbParameter("@CodAfter", OleDbType.WChar, 0, "CodAfter"));
cmd.Parameters.Add(new OleDbParameter("@Exp", OleDbType.WChar, 0, "Exp"));
cmd.Parameters.Add(new OleDbParameter("@Example", OleDbType.WChar, 0, "Example"));
cmd.Parameters.Add(new OleDbParameter("@Notes", OleDbType.WChar, 255, "Notes"));
cmd.Parameters.Add(new OleDbParameter("@FixID", OleDbType.WChar, 20, "FixID"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.