C# SQLite 更新错误(SQL 逻辑错误或缺少“(”:语法错误“附近的数据库)
本文关键字:错误 语法 数据库 SQL 更新 SQLite | 更新日期: 2023-09-27 17:55:31
我有一个带有各种文本框和一个下拉框的 WPF 应用程序。我正在尝试使用输入到其中的详细信息更新我的 SQLite 数据库。在我首先将数据插入SQLite数据库之前,我已经重新设计了该方法。问题是当我执行代码时,出现错误"SQL 逻辑错误或缺少数据库"(":语法错误。
private void ButtonEditExmUpdate_OnClick(object sender, RoutedEventArgs e)
{
var ModifiedDateTime = DateTime.Now;
{
var ConnString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
using (var DbConnection = new SQLiteConnection(ConnString))
{
try
{var InsertIntoTable = (@"Update [Exm]
Set(ExmID = @ExmID, ExmEnvironmentType = @ExmEnvironmentType, ExmURL = @ExmURL, ExmServer = @ExmServer, ExmModifiedDate = @ExmModifiedDate, ExmDeleted = @ExmDeleted)
WHERE(Exm.ExmDeleted = 0) AND (Exm.ExmID = '" + ExmID.Text + "')");
var insertIntoUsernamePasswordString = (@"Update [ExmUsernamePassword]
Set (ExmUsername = @ExmUsername, ExmPassword = @ExmPassword, ExmServer = @ExmServer, ExmModifiedDate = @ExmModifiedDate)
WHERE(ExmUsernamePassword.Deleted = 0) AND (ExmUsernamePassword.ExmUsernamePasswordsID = '" + ExmUsernamePasswordsID.Text + "')");
var insertIntoExmTable = new SQLiteCommand(insertIntoExmTableString);
var insertIntoExmUsernamePasswordTable = new SQLiteCommand(insertIntoUsernamePasswordString);
insertIntoExmTable.Connection = DbConnection;
insertIntoExmUsernamePasswordTable.Connection = DbConnection;
DbConnection.Open();
insertIntoExmTable.Parameters.AddWithValue("@ExmEnvironmentType", ComboBoxExmEnvironmentType.Text);
insertIntoExmTable.Parameters.AddWithValue("@ExmURL", TextBoxExmUrl.Text);
insertIntoExmTable.Parameters.AddWithValue("@ExmServer", TextBoxExmServerName.Text);
insertIntoExmTable.Parameters.AddWithValue("@ExmModifiedDate", ModifiedDateTime);
insertIntoExmUsernamePasswordTable.Parameters.AddWithValue("@ExmUsername", TextBoxExmUsername.Text);
insertIntoExmUsernamePasswordTable.Parameters.AddWithValue("@ExmPassword", TextBoxExmPassword.Text);
insertIntoExmUsernamePasswordTable.Parameters.AddWithValue("@ExmServer", TextBoxExmServerName.Text);
insertIntoExmUsernamePasswordTable.Parameters.AddWithValue("@ExmModifiedDate", ModifiedDateTime);
try
{
insertIntoExmTable.ExecuteNonQuery();
DbConnection.Close();
DbConnection.Open();
insertIntoExmUsernamePasswordTable.ExecuteNonQuery();
DbConnection.Close();
MessageBox.Show("Successfully updated");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
}
}
错误:SQL 逻辑错误或缺少"("附近的数据库:语法错误。
我找到了导致问题的原因,这是因为我的 SET 语句在括号内,因此 SQL 字符串的最终代码如下所示。
var InsertIntoTable = (@"Update [Exm]
Set ExmID = @ExmID, ExmEnvironmentType = @ExmEnvironmentType, ExmURL = @ExmURL, ExmServer = @ExmServer, ExmModifiedDate = @ExmModifiedDate, ExmDeleted = @ExmDeleted
WHERE(Exm.ExmDeleted = 0) AND (Exm.ExmID = '" + ExmID.Text + "')");
var insertIntoUsernamePasswordString = (@"Update [ExmUsernamePassword]
Set ExmUsername = @ExmUsername, ExmPassword = @ExmPassword, ExmServer = @ExmServer, ExmModifiedDate = @ExmModifiedDate
WHERE(ExmUsernamePassword.Deleted = 0) AND (ExmUsernamePassword.ExmUsernamePasswordsID = '" + ExmUsernamePasswordsID.Text + "')");