1

マイクロソフトエンタープライズライブラリ5を使用して次のコードがあります。

Database database = DatabaseFactory.CreateDatabase("myConStr");
int rowsAffected = database.ExecuteNonQuery("[DeleteCustomer]", cboCustomers.SelectedItem.ToString());

myConStrはapp.configで正しく定義されています(他のELベースのクエリで機能します)。DeleteCustomerSPは次のよ​​うに定義されます。

CREATE PROCEDURE DeleteCustomer
  @CustomerID nchar(5)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    delete from dbo.Customers
    where CustomerID = @CustomerID
END

ExecuteNonQueryメソッドのドキュメントでは、結果は影響を受けた行の数を返すと言われています。

ただし、削除が正常に機能していても、常に結果「-1」が返されます。どうしたの?削除されたレコードの数を取得するにはどうすればよいですか?

ありがとう、ルシアン

4

1 に答える 1

3

「SETNOCOUNTがONの場合、カウント(Transact-SQLステートメントの影響を受ける行数を示す)は返されません。」

于 2010-11-11T18:48:14.640 に答える