2

このドキュメントのMySqlによるとC.7.9.6。MySQL Connector / NET 5.0.5での変更(2007年3月7日)

メソッドを追加し、廃止としてMySqlParameterCollection.AddWithValueマークしました。Add(name, value)

私は.Add最近まで使っていて、問題はありませんでした。メソッドを発見する.AddWithValueと、主に構文が少なくて済むため、この方法が適しています。

私の質問:2つの方法の間に機能的な違いがあるかどうか誰かが知っていますか?それらに関する適切なドキュメントが見つかりません。

編集:

Microsoftは、SqlParameterCollectionについて次のように述べています。

AddWithValueSqlParameterCollection.Add文字列とオブジェクトを受け取るメソッドを置き換え ます。そのオーバーロードはAdd文字列を取り、オブジェクトは、文字 SqlParameterCollection.Add列とSqlDbType列挙値を受け取るオーバーロードとのあいまいさの可能性があるため、非推奨になりました。この場合、整数を文字列とともに渡すと、パラメーター値または対応するSqlDbType値のいずれかとして解釈できます。AddWithValue 名前と値を指定してパラメータを追加する場合はいつでも使用できます。

おそらくそれは同じ理由によるものです。

4

1 に答える 1

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

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

于 2010-11-22T20:25:26.840 に答える