我有一个带有各种文本框和一个下拉框的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 + "')");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句