【发布时间】:2015-08-11 15:49:37
【问题描述】:
我以前做过,但在这种情况下,我有一个insert into table 查询,其中目标表的列的值来自另一个查询的结果。有了这个,我不确定我的parametarized query 的格式是否正确。
这是一个没有Sql Injection之前的原始查询修复:
cmd.CommandText += "insert into controlnumber (controlnumber, errorid)
values ('" + ControlNumber + "', (select errorid from error where
errordescription = '" + ErrorDescription + "' and errortype = '" +
ErrorType + "' + and applicationid = " + ApplicationID + " and statusid =
" + StatusID + " and userid = " + UserID + " and errortime = '" +
ErrorTime + "');";
这是我尝试修复Sql Injection后的查询:
cmd.CommandText = "insert into ControlTable(ControlNumber, ErrorID)
values (@ControlNum, (select errorid from error where errordescription =
@ErrorDescription and errortype = @errorType and applicationid =
@ApplicationID and statusid = @StatusID and userid = @UserID and
errortime = @ErrorTime)"
这是我添加参数的地方:
.....
command.CommandType = CommandType.Text
command.Parameters.AddWithValue("@ErrorDescription ", ErrorDesc);
command.Parameters.AddWithValue("@ControlNum", cntNumber);
command.Parameters.AddWithValue("@errorType",ErrorType);
command.Parameters.AddWithValue("@ApplicationID",AppID);
command.Parameters.AddWithValue("@StatusID",StatusID);
command.Parameters.AddWithValue("@UserID",UserID);
....
我只是想知道我的CommandText 的格式是否正确。
谢谢
【问题讨论】:
标签: sql-injection parameterized sql-parametrized-query