3

Microsoft 独自のドキュメントには、次のようにレコードを削除する例が記載されています。

// Create the DeleteCommand.
command = new SqlCommand(
    "DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);

// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
    "@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;

adapter.DeleteCommand = command;

しかし、私のシステムでは機能しません (@CustomerID がないことを訴えています)。代わりに、

command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");

上記と

command.Parameters.AddWithValue("@CustomerID", 5);

それは動作します。

なんで?

4

1 に答える 1

5

この行で:

command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");

このオーバーロードでは、5 は値ではなくパラメーターの長さを表します。値を追加する場合は、次を追加する必要があります。

command.Parameters["@CustomerID"].Value = "5";
于 2012-10-16T02:36:02.810 に答える