3

我想知道有什么区别:

 DBCmd.Parameters.Add("user_name", IfxType.VarChar);
 DBCmd.Parameters["user_name"].Value = p_u; 

DBCmd.Parameters.Add("user_name", p_u);

这里的最佳实践是什么,哪一种更安全,一种表现优于另一种?

4

2 回答 2

5

在所示示例中,主要区别在于它知道要使用的类型是明确的IfxType.VarChar- 这可能很重要,具体取决于具体情况以及 IFX 是否将字符串默认为CharVarCharLongVarChar。老实说,我不知道默认情况下会选择哪些。

显式通常是一个好主意,但不需要通过索引器重新获取,因为新参数是从Add;返回的。我可能会建议:

DBCmd.Parameters.Add("user_name", IfxType.VarChar).Value = p_u;

或许:

DBCmd.Parameters.Add("user_name", IfxType.VarChar, 20).Value = p_u;

其中20是参数的大小

于 2012-08-15T09:43:23.183 回答
1

尽管有 Marc 的回答,Parameters.Add但不推荐添加值 - 它已替换为AddWithValue

于 2012-08-15T09:49:55.327 回答