PDA

View Full Version : معادل این دستور در vb.net چیه؟



kebriya
چهارشنبه 05 آبان 1389, 13:43 عصر
از کد زیر واسه restore کردن پشتیبان در C# استفاده میکردم اما الان وقتی به vb.net تبدیل میکنم بهم گیر میده که



Error 1 Operator '<>' is not defined for types 'Microsoft.SqlServer.Management.Smo.Database' and 'Microsoft.SqlServer.Management.Smo.Database'.



و کد c#:



SqlConnection con;
con = new SqlConnection();
con.ConnectionString = "Data Source=(local); Initial Catalog=master;Integrated Security=True";
con.Open();


ServerConnection MyserverConnection = new ServerConnection(con);
Server Myserver = new Server(MyserverConnection);
Microsoft.SqlServer.Management.Smo.Database currentDb = Myserver.Databases["pic"];
if (currentDb != null)
Myserver.KillAllProcesses("pic");

string query = "DROP DATABASE pic";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();

query = "RESTORE DATABASE pic FROM disk ='d:\\ot.bak'";
cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();

Alghoochi
چهارشنبه 05 آبان 1389, 14:09 عصر
فکرکنم اشکال از اینجا باشه



currentDb != null

جایگزین:

if not curretDb is null

kebriya
چهارشنبه 05 آبان 1389, 14:15 عصر
باز هم به null گیر میده


Error 1 'Null' is not declared. 'Null' constant is no longer supported; use 'System.DBNull' instead.

از 'System.DBNull' هم استفاده کردم بازهم خطا میده

ali_najari
چهارشنبه 05 آبان 1389, 14:20 عصر
دوست عزيز اين هم معادل كد شما



Dim con As SqlConnection
con = New SqlConnection()
con.ConnectionString = "Data Source=(local); Initial Catalog=master;Integrated Security=True"
con.Open()

Dim MyserverConnection As New ServerConnection(con)
Dim Myserver As New Server(MyserverConnection)
Dim currentDb As Microsoft.SqlServer.Management.Smo.Database = Myserver.Databases("pic")
If currentDb IsNot Nothing Then
Myserver.KillAllProcesses("pic")
End If
Dim query As String = "DROP DATABASE pic"
Dim cmd As New SqlCommand()
cmd.CommandText = query
cmd.Connection = con
cmd.ExecuteNonQuery()
query = "RESTORE DATABASE pic FROM disk ='d:\ot.bak'"
cmd = New SqlCommand()
cmd.CommandText = query
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()

Alghoochi
چهارشنبه 05 آبان 1389, 21:29 عصر
علی جان ServerConnection از کلاس های چه کتابخانه ایه؟ مربوط به .Net Framework 4 که نیست؟

kebriya
پنج شنبه 06 آبان 1389, 13:55 عصر
واسه

Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common

ali_najari
پنج شنبه 06 آبان 1389, 15:03 عصر
علی جان ServerConnection از کلاس های چه کتابخانه ایه؟ مربوط به .Net Framework 4 که نیست؟

دوست خوبمون كبريا جواب دادن

reza_edu
پنج شنبه 06 آبان 1389, 22:51 عصر
از کد زیر واسه restore کردن پشتیبان در C#‎ استفاده میکردم اما الان وقتی به vb.net تبدیل میکنم بهم گیر میده که
سلام ببخشید من این تاپیک رو دیدم ولی اصلا ازش چیزی متوجه نشدم یکم توضیح میدید منم متوجه شم این کد به چه کار میاد؟:ناراحت:

kebriya
جمعه 07 آبان 1389, 12:30 عصر
سلام ببخشید من این تاپیک رو دیدم ولی اصلا ازش چیزی متوجه نشدم یکم توضیح میدید منم متوجه شم این کد به چه کار میاد؟:ناراحت:

دوست عزیز وقتی از بانک برنامه backup میگیری برای استفاده از اون باید اون رو برگردونی یعنی restore میکنیم که این کد این کارو میکنه

reza_edu
جمعه 07 آبان 1389, 14:55 عصر
ممنون راستی من میخوام تو برنامه ام تعین کنم که هیر چند وقت که توسط کاربر تنظیم میشه برنامه بصورت خود کار از بانک روی سرور بکاپ بگیره ولی بلد نبودم پس این کد برای اینه !! منون میشم یکم بیشتر توضیح بدید میشه مثلا مدیر تو سیستم خودش تعین کنه که فایل بکاپ تو سرور تو چه کمسیری کپی شه ؟ بعد اگه درایو مورد نظر پرشد چی ؟ برنامه چه جوری میفهمه ادامه داده هارو تو کدوم درایو بریزه !

kebriya
جمعه 07 آبان 1389, 15:01 عصر
واسه بکاپ گیری از کد زیر استفاده کن:



Dim pd As System.Globalization.PersianCalendar
Dim mo1, da1 As String
pd = New System.Globalization.PersianCalendar

If Len(pd.GetMonth(DateString).ToString) < 2 Then
mo1 = "0" & pd.GetMonth(DateString).ToString
Else
mo1 = pd.GetMonth(DateString).ToString
End If

If Len(pd.GetDayOfMonth(DateString).ToString) < 2 Then
da1 = "0" & pd.GetDayOfMonth(DateString).ToString
Else
da1 = pd.GetDayOfMonth(DateString).ToString
End If

SaveFileDialog1.FileName = pd.GetYear(DateString).ToString & "-" & mo1 & "-" & da1
SaveFileDialog1.Filter = "backup files (*.bak)|*.bak"
SaveFileDialog1.ShowDialog()
Try
Dim con As SqlConnection
con = New SqlConnection()
con.ConnectionString = "Data Source=(local); Initial Catalog=dabirkhane;Integrated Security=True"
con.Open()
Dim query = "BACKUP DATABASE[dabirkhane] TO DISK = '" & SaveFileDialog1.FileName & "'"

Dim cmd As New SqlCommand()
cmd.CommandText = query
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
IO.File.Copy(Application.StartupPath() & "\images", SaveFileDialog1.FileName)
MessageBox.Show("عملیات پشتیبانی با موفقیت انجام شد")
Catch
MessageBox.Show("مسیری انتخاب نشد")
End Try


اما نمیدونم چجوری بهش بگیم که اگه جا نشد بره یه درایو دیگه.