我想知道有什么区别:
DBCmd.Parameters.Add("user_name", IfxType.VarChar);
DBCmd.Parameters["user_name"].Value = p_u;
和
DBCmd.Parameters.Add("user_name", p_u);
这里的最佳实践是什么,哪一种更安全,一种表现优于另一种?
我想知道有什么区别:
DBCmd.Parameters.Add("user_name", IfxType.VarChar);
DBCmd.Parameters["user_name"].Value = p_u;
和
DBCmd.Parameters.Add("user_name", p_u);
这里的最佳实践是什么,哪一种更安全,一种表现优于另一种?
在所示示例中,主要区别在于它知道要使用的类型是明确的IfxType.VarChar
- 这可能很重要,具体取决于具体情况以及 IFX 是否将字符串默认为Char
、VarChar
或LongVarChar
。老实说,我不知道默认情况下会选择哪些。
显式通常是一个好主意,但不需要通过索引器重新获取,因为新参数是从Add
;返回的。我可能会建议:
DBCmd.Parameters.Add("user_name", IfxType.VarChar).Value = p_u;
或许:
DBCmd.Parameters.Add("user_name", IfxType.VarChar, 20).Value = p_u;
其中20
是参数的大小。
尽管有 Marc 的回答,Parameters.Add
但不推荐添加值 - 它已替换为AddWithValue