我正在编写我的第一个数据库应用程序。它是一个带有SQLite数据库的C#WinForms应用程序。
我正在尝试编写一个SQLite查询,该查询使用带有UPDATE / WHERE命令的参数而不是INSERT命令,这是您通常看到的。
这是我用作模板的链接。请参见清单14-2。
http://en.csharp-online.net/ASP.NET_Security_Hacks%E2%80%94Avoiding_SQL_Injection
有人可以提供一些有关如何更改链接中的查询以使用UPDATE / WHERE语句而不是INSERT语句的信息吗?
答案 0 :(得分:0)
也许您可以使用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");
答案 1 :(得分:-1)
那篇文章只是指出你要将查询作为参数化查询编写,以避免sql注入攻击。因此,查询逻辑与您通常编写的相同,但不是使用字符串连接将动态值放在您使用遵循语法“@someVariableName”的变量,然后将您的动态值作为参数添加到sqlCommand对象上。 / p>
以下是有关如何为SQLite执行此操作的链接:Parameterized Queries
编辑:因为旧的参考资料已经死亡,不得不为这个答案找到新的参考资料。