我在 C# windows 应用程序中遇到了一个问题。
在这里,我正在使用 C# Windows 应用程序。
我的问题是,我有一个带有两个按钮的表单提交和取消
在按钮单击中,我正在盯着一个线程。
该线程包含一个具有以下代码部分的存储过程,这里它将从 .csv 文件中选择批量信息并使用 temp_“用户指定的文件名.csv”加载到服务器项目文件夹中。
当进程完成时,我们将 temp_“用户指定的文件名.csv”信息复制到“用户指定的文件名.csv”,最后我们从服务器文件夹中删除 temp_“用户指定的文件名.csv”。它工作正常。
exec master..xp_cmdshell ''bcp "select ''''Column1'''',''''Column2'''',''''Column3'''',''''Column4'''', ''''Column4'''',''''Column5'''',''''Column6'''',''''Column7'''',''''Column8''''" queryout "' + @Parent_Folder + @Transformed_Tbl + '.csv" -c -t, -T -Slocalhost'''
exec master..xp_cmdshell ''bcp Databasename..' + @database table+ ' out "' + @serverfolder+ 'temp_' + @user 指定文件名 + '.csv" -c -t, -T -Slocalhost'''
exec master..xp_cmdshell ''copy /b "' + @serverfolder+ @user 指定文件名 + '.csv" + "' + @serverfolder+ 'temp_' + @user 指定文件名 + '.csv" "' + @serverfolder + @user 指定文件名+ '.csv"'''
它运行完美,但是当我点击取消按钮时,我正在中止正在运行的线程并从文件夹中删除“temp_user指定的文件名.csv”和“用户指定的文件名.csv”并更新数据库。
它中止并关闭所有 sql 会话并更新数据库但它没有删除文件“temp_user 指定的文件名.csv”,为什么因为在服务器文件夹中仍然 bcp 进程仍在运行并且 sql server 有一个活动会话。
如果我关闭应用程序,即使 bcp 进程仍在运行。
单击取消按钮时如何关闭 bcp.exe 会话。
请让我知道紧急解决方案..