在自己的线程上运行.Net: SQLCommand,并允许用户在运行过程中安全地取消它,可以通过以下步骤实现:
以下是一个示例代码,演示如何在自己的线程上运行.Net: SQLCommand,并允许用户在运行过程中安全地取消它:
using System;
using System.Data.SqlClient;
using System.Threading;
using System.Threading.Tasks;
public class Program
{
private static CancellationTokenSource cancellationTokenSource;
public static void Main()
{
cancellationTokenSource = new CancellationTokenSource();
// 创建新线程并执行SQL命令
Task.Run(() => ExecuteSqlCommand(cancellationTokenSource.Token));
// 模拟用户界面,提供取消操作的选项
Console.WriteLine("按任意键取消操作...");
Console.ReadKey();
// 用户点击取消按钮,取消操作
cancellationTokenSource.Cancel();
Console.WriteLine("操作已取消。");
Console.ReadKey();
}
private static void ExecuteSqlCommand(CancellationToken cancellationToken)
{
string connectionString = "YourConnectionString";
string sqlCommandText = "YourSQLCommand";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sqlCommandText, connection))
{
// 设置取消操作的回调函数
cancellationToken.Register(() => command.Cancel());
try
{
// 执行SQL命令
command.ExecuteNonQuery();
Console.WriteLine("SQL命令执行成功。");
}
catch (SqlException ex)
{
// 检查是否是由于取消操作引起的异常
if (cancellationToken.IsCancellationRequested)
{
Console.WriteLine("操作已取消。");
}
else
{
Console.WriteLine("SQL命令执行失败:" + ex.Message);
}
}
}
}
}
}
请注意,上述示例代码中的"YourConnectionString"和"YourSQLCommand"需要替换为实际的数据库连接字符串和要执行的SQL命令。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云