ExecuteNonQuery不会更新Access数据库

时间:2016-01-11 10:01:20

标签: c# sql ms-access

我正在尝试使用以下内容更新访问数据库;

if(count > 0)
{         
   sqlQuery = "UPDATE facial_user SET facial_1=? WHERE username=?;";
   using (OleDbCommand com2 = new OleDbCommand(sqlQuery, dbConnection))
   {
      sqlCommand.Parameters.AddWithValue("@facial_1", engine.imageToBase64String(new Bitmap(pictureBox.Image, new Size(pictureBox.Width / 10, pictureBox.Height / 10))));
      sqlCommand.Parameters.AddWithValue("@username", userTextBox.Text);
      sqlCommand.ExecuteNonQuery();
   }
}
else
{
   sqlQuery = "INSERT INTO facial_user(id, username, facial_1) VALUES(@id, @username, @facial_1);";
   using (OleDbCommand com2 = new OleDbCommand(sqlQuery, dbConnection))
   {
      sqlCommand.Parameters.AddWithValue("@id", (dataSet.Tables[0].Rows.Count + 1).ToString());
      sqlCommand.Parameters.AddWithValue("@username", userTextBox.Text);
      sqlCommand.Parameters.AddWithValue("@facial_1", engine.imageToBase64String(new Bitmap(pictureBox.Image, new Size(pictureBox.Width, pictureBox.Height))));
      sqlCommand.ExecuteNonQuery();
   }
}

我可以毫无问题地输入两个条件并退出它们而不会出错。但是,在关闭dbconnection后,我的数据库文件没有反映更改。

请告知。

1 个答案:

答案 0 :(得分:0)

如果INSERT语句有效且UPDATE语句不起作用,唯一可能的解决方案是给定username没有条目。因此,如果WHERE条件与用户名不匹配,则不会更新任何内容。