backup از دیتابیسی که در sql Express ساخته شده
سلام دوستان
من می خواستم از دیتا بیسم backup بگیرم و تو همین سایت چندجا دیدم که واسه backup به صوت زیر عمل میشه:
کد:
cmd.CommandText="backup database db_name to disk=@path with format";
cmd.Parameters.AddWithValue("@path","C:\\db.bak");
بعد سراغ SQL EXPRESS WEBLOG رفتم و اونجا یه نمونه برنامه به زبان C# دیدم که Backup و restore رو انجام میداد:
کد:
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
namespace CreateRANU
{
class Program
{
static void Main(string[] args)
{
BackupDatabase();
RestoreBackup();
}
public static void BackupDatabase()
{
string sConnect = Properties.Settings.Default.BackupConnectionString;
string dbName;
using (SqlConnection cnn = new SqlConnection(sConnect))
{
cnn.Open();
dbName = cnn.Database.ToString();
ServerConnection sc = new ServerConnection(cnn);
Server sv = new Server(sc);
// Check that I'm connected to the user instance
Console.WriteLine(sv.InstanceName.ToString());
// Create backup device item for the backup
BackupDeviceItem bdi = new BackupDeviceItem(@"C:\AppDataBackup\SampleBackup.bak", DeviceType.File);
// Create the backup informaton
Backup bk = 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.");
}
}
public static void RestoreBackup()
{
string sConnect = Properties.Settings.Default.BackupConnectionString;
string dbName;
using (SqlConnection cnn = new SqlConnection(sConnect))
{
cnn.Open();
dbName = cnn.Database.ToString();
cnn.ChangeDatabase("master");
ServerConnection sc = new ServerConnection(cnn);
Server sv = new Server(sc);
// Check that I'm connected to the user instance
Console.WriteLine(sv.InstanceName.ToString());
// Create backup device item for the backup
BackupDeviceItem bdi = new BackupDeviceItem(@"C:\AppDataBackup\SampleBackup.bak", DeviceType.File);
// Create the restore object
Restore resDB = 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.");
}
}
public static void CreateDatabase()
{
using (SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True;Connection Timeout=60"))
{
cn.Open();
SqlCommand cmd = new SqlCommand("CREATE DATABASE forumTest1", cn);
cmd.ExecuteNonQuery();
SqlConnection cn2 = new SqlConnection(@"Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDbFilename=|DataDirectory|\forumTest1.mdf;User Instance=True;Connection Timeout=60");
cn2.Open();
}
}
}
}
حالا سوالم اینه که فرق این برنامه طویل با اون دوتا خط که برای بک آپ پیدا کردم چیه؟
آیا زمانی که از SQL EXPRESS استفاده می کنم میتونم برای بک آپ از همون دو خط استفاده کنم؟
ممنون میشم اگه کسی کمک کنه:11: