PDA

View Full Version : BackUp از Express . آیا DB باید حتما Attach شده باشد؟



اوبالیت به بو
دوشنبه 26 خرداد 1393, 08:18 صبح
درود بر شما

نرم افزار بوسیله یک ستاپ در سیستم مشتری نصب می شود. دیتابایس SQL Express 2008 می باشد و در پوشه Debug قرار داده شده. ConnectionString هم به صورت زیر است:

Conn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

برای بک آپ گرفتن به مشکل برخوردم. متن خطا:

Database 'RSME' does not exist. Make sure that the name is entered correctly.

BACKUP DATABASE is terminating abnormally.

در یکی از سرچ ها یک نفر گفته بود باید در ابتدای اجرای برنامه بانک اطلاعاتی Attach شود.

1- آیا با روش ستاپ ساختن بانک اطلاعاتی Attach نمی شود؟
2- می شه در هنگام ساخت Setup بانک اطلاعاتی را Attach کرد؟
3- سیستم بک آپ گیری در پروژه هایی که مدیر بانک اطلاعاتی وجود ندارد، از طریق نرم افزار به چه صورت است؟

اوبالیت به بو
دوشنبه 26 خرداد 1393, 12:25 عصر
مساله حل شد. راه حل برای دوستانی که همین مشکل را دارند.

خیر نیازی به Attach کردن نیست. با این دستور می تونید BackUp بگیرید:


"Backup database [" + System.Windows.Forms.Application.StartupPath + "\\DB.mdf] to disk ='" + Path + "' with init,stats=10";

متاسفم برای سایت برنامه نویس، در طول دو ماه اخیر بسیاری از سوالتم بی جواب ماند. بسیار ضعیف شده این سایت. افسوس

ali it
یک شنبه 30 شهریور 1393, 18:42 عصر
با سلام خدمت اساتید بزرگوار
من با استفاده از تابع زیر از دیتابیسی که به صورت sqlexpress نصب خواهد شد می خواهم بکاپ بگیرم ولی بعد از نصب در سیستم هدف نه بکاپ میگیره و نه ارور میده هیچ تاثیری نمیذاره

public static void backup2(string FileName, string DataBaseName)
{
string DevicePath = null;
DevicePath = FileName;
using (conn)
{

conn.Close();
conn.Open();
ServerConnection Srvcon = new ServerConnection(conn);
Server Srv = new Server(Srvcon);
// Create backup device item for the backup
BackupDeviceItem bdi = new BackupDeviceItem(DevicePath, DeviceType.File);
// Create the backup informaton
Microsoft.SqlServer.Management.Smo.Backup Backup = new Microsoft.SqlServer.Management.Smo.Backup();
Backup.Devices.Add(bdi);
var _with1 = Backup;
//Type Of Backup
_with1.Action = BackupActionType.Database;
_with1.BackupSetDescription = "Backup DataBase";
_with1.BackupSetName = DataBaseName;
_with1.Database = conn.Database.ToString();
_with1.LogTruncation = BackupTruncateLogType.Truncate;
//Backup.ExpirationDate = New DateTime(2007, 5, 1)
// Run the backup
_with1.SqlBackup(Srv);
conn.Close();

}


}
در کلیک botton مورد نظر هم اطلاعات زیر را وارد کرده ام

private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "DateBase Backup File(*.bak)|*.bak";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string address = saveFileDialog1.FileName;
dbcommand.setconnectionstring();

dbcommand.backup2(address, "pooshak");
MessageBox.Show("پشتبان گیری به طور کامل از اطلاعات شما انجام شد لطفا اطلاعات پشتیبان را در خارج از کامپیوتر در جای امن نگه دارید", "avan آسان و مطمعن", MessageBoxButtons.OK);

البته namespaceهایی که استفاده کرده ام
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
هستند
sql 2005 هستش و مجبورم با این کانکشن وصل شوم (برنامه در سمت مشتری نصب خواهد شد)
conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\pooshak.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

لطفا راهنماییم کنید الان پروژم دو روزه الکی خوابیده فقط بکاپ مونده تا کارم تموم بشه همه جای سایتم گشتم ولی نتیجه نگرفتم خیلی ممنون:خجالت: