سلام
اگر بخواهيم از طريق كد نويسي در فرممان يك دكمه داشته باشيم كه با كليك بر روي آن از بانك مورد نظرمان back up بگيريم چيكار بايد بكنيم . خواهشا دقيق تر توضيح بديد لطفا كدها كامل باشد چون من تازه كارم
با تشكر
:تشویق:
Printable View
سلام
اگر بخواهيم از طريق كد نويسي در فرممان يك دكمه داشته باشيم كه با كليك بر روي آن از بانك مورد نظرمان back up بگيريم چيكار بايد بكنيم . خواهشا دقيق تر توضيح بديد لطفا كدها كامل باشد چون من تازه كارم
با تشكر
:تشویق:
شما سرچ کردید؟با کدوم کد مشکل دارید؟کد را بزارید
کار خاصی که قرار نیست انجام بشه
مثلا با این کد چه مشکلی داری؟
MessageBox.Show("در حین عملیات به چیزی دست نزنید");
System.IO.Directory.CreateDirectory(@"C:\BackupDat abaseLibrary");
//پشتیبان گیری از بانک اطلاعاتی
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local);database=Library;Integrated Security=SSPI";
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE Library TO DISK = 'C:\\BackupDatabaseLibrary\\Backup.MDF'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("پشتیبان گیری به درستی انجام شد");
}
catch
{
MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
}
لطف كنيد در مورد اين دو خط بيشتر توضيح بديد
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE projectdb. TO DISK = 'C:\\BackupDatabaseLibrary\\Backup.MDF'";
كدهاي شما رو در يك button نوشتم ولي
اشکال در ارتباط با بانک اطلاعاتی
صادر مي شود
ديتابيس من tel ميباشد .
ببینید کد از این واضح تر وجود نداره
شما با استفاده از Query مخصوص به خودتون میتوانید تغییرات را اعمال کنید
من در اونجا برای بانک خودن نوشتم
ببینید در این خط
string query = "BACKUP DATABASE projectdb. TO DISK = 'C:\\BackupDatabaseLibrary\\Backup.MDF'";
من ادرس رو به دلخواه خودم دادم
شما اگه توضیح فارسی رو میخوندید یعنی واقعا باز هم براتون مبهم بود؟
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("در حین عملیات به چیزی دست نزنید");
System.IO.Directory.CreateDirectory(@"C:\BackupDat abaseLibrary");
//پشتیبان گیری از بانک اطلاعاتی
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local);database=Library;Integrated Security=SSPI";
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE projectdb TO DISK = 'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("پشتیبان گیری به درستی انجام شد");
}
catch
{
MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
}
}
الان دقيقا اين كد را نوشتم
string query = "BACKUP DATABASE projectdb TO DISK = 'C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Backup'";
كه مسير backup اس كيو ال هست ولي باز هم پيغام "اشکال در ارتباط با بانک اطلاعاتی مي ده
با سلام خدمت دوست عزیز
اگه هنوز مشکلت حل نشده و نمی تونی پشتیبان بگیری حتما سیستم فایلت NTFS هست موارد زیر رو انجام بده حتما جواب میگیری:
1-یه فولدر تو یکی از درایو ها که می خوای فایل پشتیبان تو اون ذخیره بشه درست کن
2-برو به قسمت Security پوشه و یوزر مروبط به نمونه SQL Server خودت رو برای اون پوشه انتخاب کن و دستیابی های خواندن/نوشتن رو برای اون فعال کن اگه همه دستیابی ها رو هم فعال کنی راحت تری
بعد دستورات بالا رو انجام بده حتما موفق میشی
توضیح اینکه اگه از یه درایو با فرمت FAT32 استفاده کنی این مشکلات رو نداری
این پست رو هم ببین تقریبا کامل توضیح دادم:
https://barnamenevis.org/showthread.php?p=856048
اینم برای شما مشکلی داشتید در خدمتم
ضمن تقدير و تشكر از همه دوستاني كه به اين تاپيك سر زدن و تشكر بسيار ويژه از man7tomani يه برنامه آپلود مي كنم كه هم back up داره هم restore اميدوارم بدرد همه دوستان بخوره
دوستاني كه دانلود مي كنن بگن مشكل داره يا نه
سلام دوست عزیز با این کد میتونین آدرس رو از خود کاربر بگیری فقط باید هم نام بانک رو در کد درست کنی و هم آدرس conection
این کد رو در دکمه بک آپ گیریت بنویس
string strFileName = string.Empty;
saveFileDialog1.DefaultExt = "BAK";
saveFileDialog1.FileName = "BackupFile";
saveFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.Title = "Backup SQL File";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = saveFileDialog1.FileName;
Backup(strFileName);
}
اینم در زیرش قرار بده
private void Backup(string strFileName)
{
try
{
string command = @"BACKUP DATABASE [pardakht] TO DISK = N'" + strFileName + "' WITH NOFORMAT, NOINIT, NAME = N'pardakht-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
string scnn = @"Data Source=FERDOSIA-17A1DB;Initial Catalog=pardakht;Integrated Security=True";
oConnection = new SqlConnection(scnn);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
oConnection.Close();
MessageBox.Show("فایل پشتیبان با موفقیت ساخته شد", "پیام", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception err)
{
this.Cursor = Cursors.Default;
MessageBox.Show(err.Message+"اجازه دسترسی به پوشه مورد نظر داده نشده است", "Error",MessageBoxButtons.OK,MessageBoxIcon.Error) ;
}
}
اینم برای ریستور کردن
string strFileName = string.Empty;
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
Restore(strFileName);
}
اینم زیرش قرار بده
private void Restore(string strFileName)
{
try
{
string command = "use master; RESTORE DATABASE [pardakht] FROM DISK = N'" + strFileName + "' WITH RESTRICTED_USER, FILE = 1, NOUNLOAD, REPLACE, STATS = 10; use pardakht;";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
string scnn = @"Data Source=FERDOSIA-17A1DB;Initial Catalog=pardakht;Integrated Security=True";
oConnection = new SqlConnection(scnn);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("دستور با موفقیت انجام شد","پیام",MessageBoxButtons.OK,MessageBoxIc on.Information);
this.Cursor = Cursors.Default;
}
catch (Exception err)
{
this.Cursor = Cursors.Default;
MessageBox.Show("انجام دستور مورد نظر در حال حاضر امکان پذیر نمی باشد", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
موفق باشی
با سلام دوست عزیز، با عنایت به کد های نوشته شما در تاپیک من توانستم بک آپ رو حل کنم اما وقتی می خوام رستور کنم این پیغام رو میده لطفا راهنمایی کنید با تشکر :
+$exception {"Exclusive access could not be obtained because the database is in use.\r\nRESTORE DATABASE is terminating abnormally.\r\nChanged database context to 'master'.\r\nChanged database context to 'myTell'."} System.Exception {System.Data.SqlClient.SqlException}
به پست 28 برید مشکلتون حل میشه
http://www.barnamenevis.org/sh...=218782&page=3
سلام به دوستان من برای restore از storedproceduer استفاده کرده ولی با پیغام روبرو شدم که اجازه restore را نمی دهد وبرای همین یک تایپیک زدم ولی انگار کسی نبود به من کمک کنه اما این را دیدم فعال است اینج ادامه بدهم شاید کسی مرا راهنمایی کند
لطفا اگر ممکن است به آدرس این تایپیک مراجعه کنید و راهنمایی کنید
با تشکر از دوستان
http://www.barnamenevis.org/sh...d.php?t=232639