可能重复:
Difference between Parameters.Add and Parameters.AddWithValue
从MSDN代码来看,这两者之间有什么区别:
SqlCommand command = new SqlCommand(commandText, connection);
//#1
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
//#2
command.Parameters.AddWithValue("@demographics", demoXml);
做第一个以确保我正确地投射参数是否更好?我试图让我的代码更安全。
答案 0 :(得分:3)
根据MSDN:
AddWithValue替换了采用的SqlParameterCollection.Add方法 字符串和对象。 Add的重载,它接受一个字符串和一个 对象因为可能含糊不清而被弃用 SqlParameterCollection 即可。添加带有String和a的重载 SqlDbType枚举值,其中传递带字符串的整数 可以解释为参数值或 对应的SqlDbType值。 随时使用AddWithValue 通过指定名称和值来添加参数。
因此AddWithValue
替换了不推荐的重载,从而产生歧义。
答案 1 :(得分:2)