2011-01-05 27 views
0

我在写我的第一个数据库应用程序。它是一个带有SQLite数据库的C#WinForms应用程序。如何:带有UPDATE/WHERE命令的SQLite参数

我正在尝试编写一个SQLite查询,使用参数与UPDATE/WHERE命令,而不是INSERT命令,这是你通常看到的。

下面是我用作模板的链接。参见清单14-2。

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

有人可以提供关于如何更改查询的链接使用UPDATE/WHERE语句而不是INSERT语句的一些见解?

回答

-1

那么这篇文章只是指出,你会想写你查询作为参数化查询,以避免SQL注入攻击。因此,查询逻辑与您通常编写的相同,但不是使用字符串连接将动态值放入您的变量中,而是使用“@someVariableName”语法后的变量,然后将您的动态值作为参数添加到sqlCommand对象中。

这是通过对如何做到这一点SQLite的链接散步:Parameterized Queries

编辑:必须找到这个答案一个新的参考旧参考死亡。

+0

这是链接不工作时的正确答案吗?烦人。 – 2014-06-29 01:19:17

+0

@MatthewPitts我更新了链接。在烦恼之前,也许你应该看看这个答案的日期(3.5年前),并意识到有时页面被移除并且链接断裂。 – Adrian 2014-08-20 20:21:25

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");