با سلام
چرا می خوای با ستاپ این کار رو بکنی. خوب این مسئله رو می تونی با run شدن برنامت چک کنی . و در ورتی که وجود نداشت اون دیتابیس رو ایجاد کنی و سپس بانک خالی رو restore کنی
می تونی از کد زیر هم استفاده کنی :
Private Sub Main_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim farsi As New Globalization.CultureInfo("fa-IR")
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(farsi)
Me.date_now.Text = shamsi()
Me.name_roz.Text = shamsiweekdayname()
Me.time_now.Text = Now.TimeOfDay.ToString
mablagh_pardakhti_jahiziyeh.Top = 1
'===============================
'چک کردن وجود دیتابیس و در صورت وجود نداشتن
'اضافه نمودن دیتابیس و برگردان اطلاعات پایه
'===============================
Dim temp_cmd_ExecuteScalar As Integer
Dim cmd As New SqlClient.SqlCommand()
cmd.Connection = New SqlClient.SqlConnection("server=.;database=master; integrated security=true;")
cmd.CommandText = "SELECT count(*) FROM master..sysdatabases WHERE name = 'jahiziyeh_" + code_shakheh + "'"
Try
cmd.Connection.Open()
temp_cmd_ExecuteScalar = cmd.ExecuteScalar()
Catch ex As Exception
MsgBox("خطا در یافتن بانک اطلاعاتی ", MsgBoxStyle.Information, "سیستم جهیزیه")
MsgBox(ex.Message)
Exit Sub
Finally
cmd.Connection.Close()
End Try
If temp_cmd_ExecuteScalar = 0 Then
If MsgBox(" بانک اطلاعاتی شاخه" + code_shakheh + " وجود ندارد.آیا مایل به ساختن بانک اطلاعاتی هستید؟ ", MsgBoxStyle.YesNo, "سیستم جهیزیه") = MsgBoxResult.Yes Then
cmd.Connection = New SqlClient.SqlConnection("server=.;database=master; integrated security=true;")
cmd.CommandText = "DECLARE @temp varchar(500);" & _
"DECLARE @data_filename varchar(500);" & _
"DECLARE @log_filename varchar(500);" & _
"IF NOT EXISTS (SELECT * FROM master..sysdatabases WHERE name = 'jahiziyeh_" + code_shakheh + "') " & _
"BEGIN " & _
"CREATE DATABASE jahiziyeh_" + code_shakheh + ";" & _
"SELECT @temp=filename FROM master..sysdatabases WHERE name = 'jahiziyeh_" + code_shakheh + "'; " & _
"set @data_filename=left(@temp,len(@temp)-4)+'_data.mdf'; " & _
"set @log_filename=left(@temp,len(@temp)-4)+'_log.mdf';" & _
"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
"RESTORE DATABASE jahiziyeh_" + code_shakheh + " FROM DISK='" + Application.StartupPath + "\database\jahiziyeh_empty.bak' WITH REPLACE," & _
"MOVE 'jahiziyeh_data' TO @data_filename," & _
"MOVE 'jahiziyeh_Log' TO @log_filename;" & _
"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET MULTI_USER;" & _
"END " '& _
'"ELSE " & _
'"BEGIN " & _
'"SELECT @temp=filename FROM master..sysdatabases WHERE name = 'jahiziyeh_" + code_shakheh + "'; " & _
'"set @data_filename=left(@temp,len(@temp)-4)+'_data.mdf';" & _
'"set @log_filename=left(@temp,len(@temp)-4)+'_log.mdf';" & _
'"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
'"RESTORE DATABASE jahiziyeh_" + code_shakheh + " FROM DISK='" + Application.StartupPath + "\database\jahiziyeh_empty.bak' WITH REPLACE," & _
'"MOVE 'jahiziyeh_data' TO @data_filename," & _
'"MOVE 'jahiziyeh_Log' TO @log_filename;" & _
'"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET MULTI_USER;" & _
'"END"
Try
cmd.Connection.Open()
cmd.ExecuteNonQuery()
'=========یافتن نام شاخه
Dim array_colum_output As New ArrayList
Dim array_colum_search As New ArrayList
Dim array_operator As New ArrayList
Dim array_value_search As New ArrayList
Dim array_and_or As New ArrayList
Dim datatable_temp As New DataTable
array_colum_output.Clear()
array_colum_search.Clear()
array_operator.Clear()
array_value_search.Clear()
array_and_or.Clear()
array_colum_search.Add("code_shakheh")
array_value_search.Add(code_shakheh)
array_operator.Add("=")
array_and_or.Add("and")
Module1.search_select(array_colum_output, array_colum_search, array_operator, array_value_search, array_and_or, "Shakheh", Fill_types.SchimaData, datatable_temp)
If datatable_temp.Rows.Count <> 0 Then
Me.ToolStripStatusLabel7.Text = datatable_temp.Rows(0)("name_shakheh")
End If
'=========
MsgBox("ساخت پایگاه داده و بازیابی اطلاعات پایه با موفقیت به پایان رسید", MsgBoxStyle.Information, "سیستم جهیزیه")
Catch ex As Exception
MsgBox("خطا در ایجاد و بازیابی اطلاعات پایه بانک اطلاعاتی ", MsgBoxStyle.Information, "سیستم جهیزیه")
MsgBox(ex.Message)
Exit Sub
Finally
cmd.Connection.Close()
End Try
Else
'====================پاسخ منفی به ساخت پایگاه داده ================
Application.Exit()
'====================
End If
Else 'بانک اطلاعاتی وجود دارد حال باید جداول اطلاعاتی درون آن چک شود
cmd.Connection = New SqlClient.SqlConnection("server=.;database=master; integrated security=true;")
cmd.CommandText = "SELECT count(*) FROM jahiziyeh_" + code_shakheh + "..sysobjects WHERE name = 'Amozesh' AND type = 'U'"
Try
cmd.Connection.Open()
temp_cmd_ExecuteScalar = cmd.ExecuteScalar()
Catch ex As Exception
MsgBox("خطا در یافتن جداول بانک اطلاعاتی ", MsgBoxStyle.Information, "سیستم جهیزیه")
MsgBox(ex.Message)
Exit Sub
Finally
cmd.Connection.Close()
End Try
If temp_cmd_ExecuteScalar = 0 Then
If MsgBox(" بانک اطلاعاتی شاخه" + code_shakheh + " بدون اطلاعات پایه می باشد.آیا مایل به ساختن اطلاعات پایه هستید؟ ", MsgBoxStyle.YesNo, "سیستم جهیزیه") = MsgBoxResult.Yes Then
cmd.Connection = New SqlClient.SqlConnection("server=.;database=master; integrated security=true;")
cmd.CommandText = "DECLARE @temp varchar(500);" & _
"DECLARE @data_filename varchar(500);" & _
"DECLARE @log_filename varchar(500);" & _
"SELECT @temp=filename FROM master..sysdatabases WHERE name = 'jahiziyeh_" + code_shakheh + "'; " & _
"set @data_filename=left(@temp,len(@temp)-4)+'_data.mdf';" & _
"set @log_filename=left(@temp,len(@temp)-4)+'_log.mdf';" & _
"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
"RESTORE DATABASE jahiziyeh_" + code_shakheh + " FROM DISK='" + Application.StartupPath + "\database\jahiziyeh_empty.bak' WITH REPLACE," & _
"MOVE 'jahiziyeh_data' TO @data_filename," & _
"MOVE 'jahiziyeh_Log' TO @log_filename;" & _
"ALTER DATABASE jahiziyeh_" + code_shakheh + " SET MULTI_USER;"
Try
cmd.Connection.Open()
cmd.ExecuteNonQuery()
'=========یافتن نام شاخه
Dim array_colum_output As New ArrayList
Dim array_colum_search As New ArrayList
Dim array_operator As New ArrayList
Dim array_value_search As New ArrayList
Dim array_and_or As New ArrayList
Dim datatable_temp As New DataTable
array_colum_output.Clear()
array_colum_search.Clear()
array_operator.Clear()
array_value_search.Clear()
array_and_or.Clear()
array_colum_search.Add("code_shakheh")
array_value_search.Add(code_shakheh)
array_operator.Add("=")
array_and_or.Add("and")
Module1.search_select(array_colum_output, array_colum_search, array_operator, array_value_search, array_and_or, "Shakheh", Fill_types.SchimaData, datatable_temp)
If datatable_temp.Rows.Count <> 0 Then
Me.ToolStripStatusLabel7.Text = datatable_temp.Rows(0)("name_shakheh")
End If
'=========
MsgBox("اطلاعات پایه با موفقیت بازیابی شد", MsgBoxStyle.Information, "سیستم جهیزیه")
Catch ex As Exception
MsgBox("خطا در بازیابی اطلاعات پایه ", MsgBoxStyle.Information, "سیستم جهیزیه")
MsgBox(ex.Message)
Exit Sub
Finally
cmd.Connection.Close()
End Try
Else
'==================== پاسخ منفی به بازیابی اطلاعات پایه ================
Application.Exit()
'====================
End If
End If
End If
'===============================
'===============================
End Sub
موفق باشی