根据本文档中的MySql C.7.9.6. Changes in MySQL Connector/NET 5.0.5 (07 March 2007):
添加了
MySqlParameterCollection.AddWithValue
并将Add(name, value)
方法标记为已过时。
直到最近我一直在使用.Add
并且没有遇到任何问题。在发现.AddWithValue
方法后,最好主要是因为它涉及较少的语法。
我的问题:有没有人知道这两种方法之间是否有任何功能差异?我找不到合适的文件。
修改
Microsoft发表了关于SqlParameterCollection的说明:
AddWithValue
取代了SqlParameterCollection.Add
方法 采用String和Object。该 带有字符串的Add
重载 并且弃用了一个对象,因为 可能含糊不清的SqlParameterCollection.Add
超载 采用String和SqlDbType 通过a的枚举值 字符串的整数可以是 被解释为是 参数值或相应的 SqlDbType值。使用AddWithValue
每当你想添加一个参数 通过指定其名称和值。
也许是出于同样的原因。
答案 0 :(得分:3)
当文档什么都没说时,请咨询来源。 这些方法是相同的(在它们的实现中):
/// <summary>
/// Adds a <see cref="MySqlParameter"/> to the <see cref="MySqlParameterCollection"/> given the specified parameter name and value.
/// </summary>
/// <param name="parameterName">The name of the parameter.</param>
/// <param name="value">The <see cref="MySqlParameter.Value"/> of the <see cref="MySqlParameter"/> to add to the collection.</param>
/// <returns>The newly added <see cref="MySqlParameter"/> object.</returns>
[Obsolete("Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)")]
public MySqlParameter Add(string parameterName, object value)
{
return Add(new MySqlParameter(parameterName, value));
}
public MySqlParameter AddWithValue(string parameterName, object value)
{
return Add(new MySqlParameter(parameterName, value));
}