PDA

View Full Version : قطع اتصال بانک با برنامه در هنگام اجرای برنامه



jd.mn98
جمعه 08 شهریور 1392, 17:07 عصر
سلام دوستان
من یه قسمتی در پروژم دارم که می تونه دیتابیس رو detach کنه ولی هنگامیکه من رو دکمه ی قطع اتصال کلیک می کنم ارور میده و میگه دیتابیس در حال استفاده است
این رو هم بگم که من برنامم رو با زدن یوزر پس بالا میارم که این عمل با دیتابیسم مرتبط می باشد

109946

109947

mahdi87_gh
جمعه 08 شهریور 1392, 17:49 عصر
سلام
دوست عزیز از کد زیر می تونید استفاده کنید


private void KillAllConnections()
{
object id;
SqlConnection con = new SqlConnection("Server=" + ServerName + "; User=" + UserName + "; Pwd=" + Password + ";");
SqlCommand cmd = new SqlCommand("SELECT DB_ID('" + database + "') as [Database ID]", con);
if (con.State == System.Data.ConnectionState.Closed) con.Open();
id = cmd.ExecuteScalar();
cmd.CommandText = "DECLARE SpidsToKill CURSOR FOR SELECT spid FROM master..sysprocesses WHERE dbid = @dbid" +
" DECLARE @Spid int DECLARE @SQL varchar(255) " +
"OPEN SpidsToKill FETCH NEXT FROM SpidsToKill INTO @Spid WHILE ( @@FETCH_STATUS = 0 ) " +
"BEGIN SELECT @SQL = 'KILL ' + CONVERT( varchar(10), @Spid ) EXEC ( @SQL ) FETCH NEXT FROM SpidsToKill INTO @Spid END " +
"CLOSE SpidsToKill DEALLOCATE SpidsToKill";
cmd.Parameters.AddWithValue("@dbid", id);
cmd.ExecuteNonQuery();
con.Close();
}