c# - 参数化查询

时间:2016-04-12 11:50:28

标签: c# sql db2 sql-injection parameterized-query

我正在.net网站上工作,该网站使用DB2数据库,该数据库使用Insert / Update和Select Queries。我研究了SQL注入,我相信我已经参数化了我的查询以避免SQL注入。你能检查一下我是否已经正确地完成了它并且有更好的方法或更充分的方法吗?

strInsert = "INSERT INTO DATABASE.Table(NUMBER,SIGNATURE,MESSAGE,CDATE,CTIME) VALUES (?,?,?,?,?)";

DB2Command cmdInsertQuery = new DB2Command(strInsert, db2Connection1);

cmdInsertQuery.Parameters.Add("NUMBER", i);
cmdInsertQuery.Parameters.Add("SIGNATURE", strSignature.Trim());
cmdInsertQuery.Parameters.Add("MESSAGE", strMessage.Trim());
cmdInsertQuery.Parameters.Add("CDATE", DateTime.Now.ToShortDateString());
cmdInsertQuery.Parameters.Add("CTIME", DateTime.Now.ToShortTimeString());
cmdInsertQuery.ExecuteNonQuery();

查询正确插入数据并正常工作。

3 个答案:

答案 0 :(得分:0)

是的,你已经正确完成了。很高兴知道你了解SQL注入问题并尝试消除它。

答案 1 :(得分:0)

添加已弃用使用addwithvalue,它仍然几乎与添加相同但我的视觉工作室总是在哭泣

实施例

string insertStatement =
           "Insert Login VALUES(@username,@password,@publicKey,@privateKey,@salt)";
            SqlCommand insertCommand = new SqlCommand(insertStatement, connection);
            insertCommand.Parameters.AddWithValue("@username", username);

答案 2 :(得分:0)

  

并且有更好的方式或更充分的方式吗?

其中一个选项是使用 https://github.com/StackExchange/dapper-dot-net