Как: параметры SQLite с помощью команды UPDATE / WHERE - PullRequest
1 голос
/ 05 января 2011

Я пишу свое первое приложение для базы данных.Это приложение C # WinForms с базой данных SQLite.

Я пытаюсь написать запрос SQLite, который использует параметры с командой UPDATE / WHERE вместо команды INSERT, что вы обычно видите.

Вот ссылка, которую я использую в качестве шаблона.См. Листинг 14-2.

http://en.csharp -online.net / ASP.NET_Security_Hacks% E2% 80% 94Avoiding_SQL_Injection

Может ли кто-нибудь дать некоторое представление оКак изменить запрос в ссылке, чтобы использовать оператор UPDATE / WHERE вместо оператора INSERT?

Ответы [ 2 ]

0 голосов
/ 05 января 2011

Возможно, вы сможете обновить базу данных с помощью функции обновления SQLiteDataAdapter.

cmdSQLite = new SQLiteCommand("SELECT * FROM TableName", connectionSQLite);
   daSQLite = new SQLiteDataAdapter();
   daSQLite.SelectCommand = cmdSQLite;
   dsSQLite = new DataSet();               
   daSQLite.Fill(dsSQLite, "TableName");
   dsSQLite.Tables["TableName"].Rows[NumberOfRowToChange]["ColumnName"] = somevalue;
   //...
   daSQLite.Update(dsSQLite, "TableName");
0 голосов
/ 05 января 2011

Хорошо, эта статья просто указывает на то, что вы захотите записывать свои запросы как параметризованные запросы, чтобы избежать атак с использованием SQL-инъекций. Таким образом, логика запроса такая же, как вы обычно пишете, но вместо использования конкатенации строк для помещения ваших динамических значений вы используете переменные в соответствии с синтаксисом «@someVariableName», а затем вы добавляете ваши динамические значения в качестве параметров объекта sqlCommand.

Ниже приведена ссылка, описывающая, как это сделать для SQLite: Параметризованные запросы

РЕДАКТИРОВАТЬ: пришлось найти новую ссылку для этого ответа, как старая ссылка умерла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...