SqlCommand参数添加与AddWithValue
我什么时候应该使用Parameters. Add/AddWithValue
Parameters. Add/AddWithValue
? 在下面的MSDN示例中,它们使用Parameters.Add
作为int
,使用Parameters.AddWithValue
作为string
command.Parameters.Add("@ID", SqlDbType.Int); command.Parameters["@ID"].Value = customerID; command.Parameters.AddWithValue("@demographics", demoXml);
什么是最适合datetime
如果您希望通过更多工作使所有显式显示,请使用Add
。 如果你很懒,请使用AddWithValue
。 AddWithValue
将派生它的值的参数类型,因此请确保它是正确的类型。 例如,如果这是正确的类型,您应该将string
解析为int
。
有一个原因可以避免Add
,如果你的参数类型是int
你必须小心使用参数名和对象的重载,因为那时使用SqlDbType
-enum选择了另一个重载 。
从备注 (方法重载现在甚至obsolete
):
使用
SqlParameterCollection.Add
方法的此重载指定整数参数值时请小心。 因为此重载采用Object类型的值,所以当值为零时,必须将整数值转换为Object类型…如果不执行此转换,编译器会假定您正在尝试调用SqlParameterCollection.Add(string, SqlDbType)
重载。