Синтаксическая Ошибка SQLite "Update" C#

Hi следующий код дает синтаксическую ошибку.Я не знаю, как решить проблему.

Ошибка

{"SQLite errorrnnear " Mytext": синтаксическая ошибка"}

Код

string dataSource = "Database.s3db";
SQLiteConnection connection = new SQLiteConnection();
connection.ConnectionString = "Data Source=" + dataSource;
connection.Open();
SQLiteCommand command = new SQLiteCommand(connection);
command.CommandText = ("update Example set Info ='" + textBox2.Text + ", Text ='"+textBox3.Text + "where ID ='" + textBox1.Text +"'");
command.ExecuteNonQuery();

2 ответов


другие предложили альтернативные способы построения SQL, но вы не должны включать значения в SQL вообще. Вы должны использовать параметризованный запрос, который позволяет избежать SQL-инъекции среди других вещей.

мне не сразу понятно, какой драйвер вы используете, но предполагая, что это Devart.com во-первых, документация для SQLiteCommand.Parameters дает хороший пример того, как это сделать. В вашем случае, код стал бы чем-то например:

string dataSource = "Database.s3db";
using (SQLiteConnection connection = new SQLiteConnection())
{
    connection.ConnectionString = "Data Source=" + dataSource;
    connection.Open();
    using (SQLiteCommand command = new SQLiteCommand(connection))
    {
        command.CommandText =
            "update Example set Info = :info, Text = :text where ID=:id";
        command.Parameters.Add("info", DbType.String).Value = textBox2.Text; 
        command.Parameters.Add("text", DbType.String).Value = textBox3.Text; 
        command.Parameters.Add("id", DbType.String).Value = textBox1.Text; 
        command.ExecuteNonQuery();
    }
}

вы пропустили ' 2 раза

попробуйте это:

command.CommandText = ("update Example set Info ='" + textBox2.Text + "', Text ='"+textBox3.Text + "' where ID ='" + textBox1.Text +"'");