PDA

View Full Version : چگونگي پشتيبان گيري از بانك SQL در برنامه vb.net



safasoft
یک شنبه 05 خرداد 1387, 07:47 صبح
با سلام
من مي خواهم در برنامه VB.net خود كدي بنويسم كه بوسيله آن از بانك SQL server پشتيبان تهيه كنم . البته لازم به ذكر است كه من در نرم افزار خود دو بانك دارم كه نام يكي متغير مي باشد و ديگري نام ثابت دارد . و من مي خواهم هر بار از هر دوي آنها پشتيبان تهيه كنم .
از راهنمايي تون ممنون مي شم .

touraj
یک شنبه 05 خرداد 1387, 10:15 صبح
برای پشتیبان گیری یه بانک رو برات میذارم. خودت برای هر دو تا کاملش کن. این هم backup میگیره، هم restore میکنه.


Imports System
Imports System.Data.SqlClient
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo



Namespace CreateRANU
Class Program
Private Shared Sub Main(ByVal args As String())
BackupDatabase()
RestoreBackup()
End Sub

Public Shared Sub BackupDatabase()
Dim sConnect As String = Properties.Settings.[Default].BackupConnectionString
Dim dbName As String

Using cnn As New SqlConnection(sConnect)
cnn.Open()
dbName = cnn.Database.ToString()

Dim sc As New ServerConnection(cnn)
Dim sv As New Server(sc)

' Check that I'm connected to the user instance
Console.WriteLine(sv.InstanceName.ToString())

' Create backup device item for the backup
Dim bdi As New BackupDeviceItem("C:\AppDataBackup\SampleBackup.bak", DeviceType.File)

' Create the backup informaton
Dim bk As New Backup()
bk.Devices.Add(bdi)
bk.Action = BackupActionType.Database
bk.BackupSetDescription = "SQL Express is a great product!"
bk.BackupSetName = "SampleBackupSet"
bk.Database = dbName
bk.ExpirationDate = New DateTime(2007, 5, 1)
bk.LogTruncation = BackupTruncateLogType.Truncate

' Run the backup
bk.SqlBackup(sv)
Console.WriteLine("Your backup is complete.")
End Using
End Sub

Public Shared Sub RestoreBackup()
Dim sConnect As String = Properties.Settings.[Default].BackupConnectionString
Dim dbName As String

Using cnn As New SqlConnection(sConnect)
cnn.Open()
dbName = cnn.Database.ToString()
cnn.ChangeDatabase("master")

Dim sc As New ServerConnection(cnn)
Dim sv As New Server(sc)

' Check that I'm connected to the user instance
Console.WriteLine(sv.InstanceName.ToString())

' Create backup device item for the backup
Dim bdi As New BackupDeviceItem("C:\AppDataBackup\SampleBackup.bak", DeviceType.File)

' Create the restore object
Dim resDB As New Restore()
resDB.Devices.Add(bdi)
resDB.NoRecovery = False
resDB.ReplaceDatabase = True
resDB.Database = dbName

' Restore the database
resDB.SqlRestore(sv)
Console.WriteLine("Your database has been restored.")
End Using
End Sub

Public Shared Sub CreateDatabase()
Using cn As New SqlConnection("Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True;Connection Timeout=60")
cn.Open()
Dim cmd As New SqlCommand("CREATE DATABASE forumTest1", cn)
cmd.ExecuteNonQuery()

Dim cn2 As New SqlConnection("Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDbFilename=|DataDirectory|\for umTest1.mdf;User Instance=True;Connection Timeout=60")

cn2.Open()
End Using
End Sub
End Class
End Namespaceمنبع : http://blogs.msdn.com/sqlexpress/

reza6384
دوشنبه 06 خرداد 1387, 15:41 عصر
سلام.

این دوتا Import نشدن ، توی لیست Net. و Com هم نبودن که Add Reference شون کنم ، لطفا بگین از کجا باید Add بشه.



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

elmira_63
دوشنبه 06 خرداد 1387, 21:16 عصر
سلام اگه ممکنه راهنمایی کنید منم همین مشکل رو دارم

touraj
دوشنبه 06 خرداد 1387, 22:55 عصر
سلام.

این دوتا Import نشدن ، توی لیست Net. و Com هم نبودن که Add Reference شون کنم ، لطفا بگین از کجا باید Add بشه.



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


راستش من به این مشکل بر نخوردم. توی net. بود. مطمئنید SQL رو درست نصب کردید؟

ali_habibi1384
سه شنبه 07 خرداد 1387, 08:05 صبح
راه اصولی:
یک store procedure در sql درست کنید که کار اونها بک آپ گیری و restore مردن باشه . در موقع نیاز اونها رو صدا بزنین .

elmira_63
چهارشنبه 08 خرداد 1387, 14:31 عصر
راستشو بخوای من توی sql نمی تونم کار کنم اگه کسی راه حلی توی vb داره خواهشاً بگه خیلی نیازمه

ameysams
چهارشنبه 08 خرداد 1387, 17:40 عصر
من خودم از کد زیر استفاده میکنم:


private void button2_Click(object sender, EventArgs e)
{
SqlCommand com = new SqlCommand();
SqlConnection con = new SqlConnection();
messages ms = new messages();
//**************************************
try
{
folderBrowserDialog1.ShowDialog();
string con_str = "Data Source=(local);Initial Catalog=master;Integrated Security=True";
con.ConnectionString = con_str;
com.Connection = con;
string str = " BACKUP DATABASE video TO DISK='" +
folderBrowserDialog1.SelectedPath + "\\video.bak'";
com.CommandText = str;
con.Open();
com.ExecuteNonQuery();
ms.showing("عملیات با موفقیت انجام شد");
}
catch //(Exception ex)
{
MessageBox.Show( "خطایی رخ داده است ");
}
finally
{
con.Close();
}

video نام بانک است

elmira_63
پنج شنبه 09 خرداد 1387, 10:17 صبح
اگه ممکنه توی vb.net 2005 بگین کدش چیه واقعا دیگه گیج شدم ؟

Sub Zero
پنج شنبه 09 خرداد 1387, 11:54 صبح
این تاپیک (http://barnamenevis.org/forum/showthread.php?t=104288&highlight=Backup+Restore) رو مطالعه کنید جواب سوال شما قبلا داده شده . (پست شماره 4)