Cancel Method
.NET Framework Class Library
SqlCommand..::.Cancel Method

Tries to cancel the execution of a SqlCommand.

Namespace:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)
Visual Basic (Declaration)
Public Overrides Sub Cancel
Visual Basic (Usage)
Dim instance As SqlCommand

instance.Cancel()
C#
public override void Cancel()
Visual C++
public:
virtual void Cancel() override
JScript
public override function Cancel()

Implements

IDbCommand..::.Cancel()()()

If there is nothing to cancel, nothing occurs. However, if there is a command in process, and the attempt to cancel fails, no exception is generated.

The following example demonstrates the use of the Cancel method.

Visual Basic
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Threading

Module Module1
    Private m_rCommand As SqlCommand

    Public Property Command() As SqlCommand
        Get
            Return m_rCommand
        End Get
        Set(ByVal value As SqlCommand)
            m_rCommand = value
        End Set
    End Property

    Public Sub Thread_Cancel()
        Command.Cancel()
    End Sub

    Sub Main()
        Dim connectionString As String = GetConnectionString()

        Try
            Using connection As New SqlConnection(connectionString)

                connection.Open()

                Command = connection.CreateCommand()
                Command.CommandText = "DROP TABLE TestCancel"
                Try
                    Command.ExecuteNonQuery()
                Catch
                End Try

                Command.CommandText = "CREATE TABLE TestCancel(co1 int, co2 char(10))"
                Command.ExecuteNonQuery()
                Command.CommandText = "INSERT INTO TestCancel VALUES (1, '1')"
                Command.ExecuteNonQuery()

                Command.CommandText = "SELECT * FROM TestCancel"
                Dim reader As SqlDataReader = Command.ExecuteReader()

                Dim rThread2 As Thread = New Thread( _
                    New ThreadStart(AddressOf Thread_Cancel))

                rThread2.Start()
                rThread2.Join()

                reader.Read()
                Console.WriteLine(reader.FieldCount)
                reader.Close()
            End Using

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Sub

    Private Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        Return "Data Source=(local);Initial Catalog=AdventureWorks;" _
           & "Integrated Security=SSPI;"
    End Function
End Module
C#
using System;
using System.Data;
using System.Data.SqlClient;
using System.Threading;

class Program
{
    private static SqlCommand m_rCommand;

    public static SqlCommand Command
    {
        get { return m_rCommand; }
        set { m_rCommand = value; }
    }

    public static void Thread_Cancel()
    {
        Command.Cancel();
    }

    static void Main()
    {
        string connectionString = GetConnectionString();
        try
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                Command = connection.CreateCommand();
                Command.CommandText = "DROP TABLE TestCancel";
                try
                {
                    Command.ExecuteNonQuery();
                }
                catch { }

                Command.CommandText = "CREATE TABLE TestCancel(co1 int, co2 char(10))";
                Command.ExecuteNonQuery();
                Command.CommandText = "INSERT INTO TestCancel VALUES (1, '1')";
                Command.ExecuteNonQuery();

                Command.CommandText = "SELECT * FROM TestCancel";
                SqlDataReader reader = Command.ExecuteReader();

                Thread rThread2 = new Thread(new ThreadStart(Thread_Cancel));
                rThread2.Start();
                rThread2.Join();

                reader.Read();
                System.Console.WriteLine(reader.FieldCount);
                reader.Close();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI";
    }
}

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
Page view tracker