根据本文中的MySqlC.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方法
获取字符串和对象。这个
带字符串的重载
对象已被弃用,因为
可能与
Add过载
它接受一个字符串和一个SqlDbType
枚举值,其中传递
带字符串的整数可以是
被解释为
参数值或相应的
SqlDbType值。使用SqlParameterCollection.Add
每当您想添加参数时
通过指定其名称和值。
也许是出于同样的原因。

最佳答案

当文件上什么也没说的时候,请咨询资料来源。
这些方法(在实现中)是相同的:

/// <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));
}

http://mysql-connector-net-5.0.sourcearchive.com/documentation/5.0.8.1/parameter__collection_8cs-source.html

关于.net - 使用Add()和AddWithValue()添加MySql参数之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4249507/

10-11 08:14