-
backup , Restore database
سلام این کد های بک آپ و رستور برنامه منه هر دوش اررور میده.
کمککککککککککککککککککککککک ککک
واسه بک آپ :
private void btn_backup_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"data source=.; initial catalog=dabirkhane; integrated security=true");
SqlCommand com = new SqlCommand("backup Database dabirkhane to disk='" + txt_path_backup.Text + "'", con);
con.Open();
int result = com.ExecuteNonQuery();
if (result > 0)
MessageBox.Show("backup compelete.");
con.Close();
}
واسه رستور :
private void btn_restore_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"data source=.; initial catalog=dabirkhane; integrated security=true");
SqlCommand com = new SqlCommand("Restore Database dabirkhane From disk ='"+txt_path_restore.Text+"'"+"With File=1,Norecovery'" , con);
con.Open();
int result = com.ExecuteNonQuery();
if (result > 0)
MessageBox.Show("Restore compelete.");
con.Close();
}
-
نقل قول: backup , Restore database
سلام
چه اروری میده ؟
بگو شاید بتونم کمکت کنم
-
نقل قول: backup , Restore database
از این خط می گیره
int result = com.ExecuteNonQuery();
کلا چه جوری میشه نوشت؟کسی بلد نیست راهنمایی کنه.
خواهشا کسی نگه سرچ کن که این ها رو از سرچ در آوردم)
-
نقل قول: backup , Restore database
اصلا کد بالا را بی خیال !
شما کد بکآپ و رستور رو ندارید.
-
نقل قول: backup , Restore database
نقل قول:
از این خط می گیره
int result = com.ExecuteNonQuery();
خوب اين كه معلومه كه از اين خط خطا مي گيرد. اينكه چه خطايي مي گيرد مهم است.
به هر حال براي backUp كد زير را استفاده كنيد.
objCommand =
newSqlCommand("BACKUP DATABASE YourDataBase TO DISK = N'" + txtDataFileName.Text + "'" +
" WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10", objConnection);
objConnection.Open();
intSuccessRecovery = objCommand.ExecuteNonQuery();
objConnection.Close();
-
نقل قول: backup , Restore database
اگر خوب جستجو می کردی یه چیزای بهتری پیدا می کردی .
من در تاپیک زیر یک برنامه قرار دادم که با استفاده از SqlDmo می تونی به راحتی BackUpو Restore کنی :
نمایش تاپیک
دانلود مستقیم برنامه
-
نقل قول: backup , Restore database
کد بکاپ رو به صورت زیر تغییر دادم
private void btn_backup_Click(object sender, EventArgs e)
{
SqlConnection objConnection = new SqlConnection("server=.; database=db_test; integrated security=true");
SqlCommand objCommand =new SqlCommand("BACKUP DATABASE db_test TO DISK ='c:\\b.bak' WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10", objConnection);
objConnection.Open();
int Successbackup = objCommand.ExecuteNonQuery();
if (Successbackup > 0)
MessageBox.Show("backup compelete.");
objConnection.Close();
}
ولی مسیج باکس کامپلت اجرا نمی شه.(بعد از زدن دکمه backup)
وبا هر بار زدن دکمه backup ، دو مگ به حجم فایل بکاپ اضافه می شه .چه کار کنم؟؟؟؟؟؟؟؟؟؟؟
-
نقل قول: backup , Restore database
WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
میشه بگید هر کدوم از این پارامتر ها چکار می کنه؟
فکر کنم یکیش برای ریپلیس رو بانک قبلی باشه.
-
نقل قول: backup , Restore database
نقل قول:
میشه بگید هر کدوم از این پارامتر ها چکار می کنه؟
استفاده از اين پارامترها ضروري نيست و اغلب زماني كاربرد دارند كه بخواهيم فايل پشتيبان را بر روي نوار ذخيره كنيم.
به عنوان مثال NoUnload مشخص مي كند كه نوار پس از خاتمه پشتبان، خارج نشود و يا NoRewind مشخص مي كند كه نوار پس از خاتمه پشتيبان گيري به عقب بر گردانده نشود.
Stats فواصل زماني اطلاع رساني پيشرفت كار را مشخص مي كند و وقتي برابر 10 است بدين معناست كه پس از انجام 10 درصد از عمليات پشتيبان گيري SQL پيام مناسب را بر گرداند.
در مورد مشكل شما نيز چون NOINIT ست شده است، پس از هر بار پشتيبان گيري اطلاعات جديد به ادامه فايل قبلي اضافه مي شود و اگر آن را به INIT تغيير دهيد، هر بار اطلاعات قبلي از بين خواهد رفت.
در مورد MessageBox هم، بايد بدانيد كه تابع ExecuteNonQuery تعداد سطر هايي را مورد اثر قرار گرفته اند، بر مي گرداند، و در هنگام اجراي دستور BackUp معمولا يك عدد منفي بر گردانده خواهد شد.(اغلب اوقات -1) پس كدتان را به صورت زير تغيير دهيد.
if (Successbackup != 0)
MessageBox.Show("backup compelete.");
موفق باشيد
-
نقل قول: backup , Restore database
آقا دمت گرم.درست شد.
ولی با رستور مشکل دارم
کد رستور :
SqlConnection SqlCon = new SqlConnection("server=.; database=dabirkhane; integrated security=true");
SqlCommand SqlCom = new SqlCommand();
SqlCon.Open();
SqlCom.CommandText =
"ALTER DATABASE dabirkhane SET SINGLE_USER WITH ROLLBACK IMMEDIATE" +
" USE master; RESTORE DATABASE dabirkhane FROM DISK ='" + txt_path_restore.Text + "'";
SqlCom.Connection = SqlCon;
SqlCom.ExecuteNonQuery();
SqlCon.Close();
//*******************
SqlCon.Open();
SqlCom.CommandText =
"ALTER DATABASE dabirkhane SET MULTI_USER ";
SqlCom.Connection = SqlCon;
SqlCom.ExecuteNonQuery();
SqlCon.Close();
MessageBox.Show("بازگردانی اطلاعات با موفقیت انجام شد");
کد رستور این خطا رو می ده :
نقل قول:
The tail of the log for the database "dabirkhane" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.
RESTORE DATABASE is terminating abnormally.
-
نقل قول: backup , Restore database
آقا می شه بگی دم کی گرم؟
از کد کی استفاده کردی که درست شد ، که حالا برای restore به مشکل بر خورد کردی ؟
-
نقل قول: backup , Restore database
از کد pars.engineer
البته برنامه شما رو هم دیدم.(ولی هنگ کردم خوب نوشته شده بود(عالی) ولی من تو بانک تازه کارم)
از شمام سپاسگزارم
-
نقل قول: backup , Restore database
حالا می تونی بگی مشکل من (تو پست 11) چیه؟
-
نقل قول: backup , Restore database
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DataBR
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//پشتیبان گیری از بانک اطلاعاتی
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local)\\SQLEXPRESS;database=aaa;Integrated Security=SSPI";
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE aaa TO DISK = 'C:\\database\\aaabackup.MDF'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("پشتیبان گیری به درستی انجام شد");
}
catch
{
MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
}
}
private void button2_Click(object sender, EventArgs e)
{
//بازیابی بانک اطلاعاتی
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=(local)\\SQLEXPRESS;database=aaa;Integrated Security=SSPI";
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
//USE master RESTORE DATABASE [نام بانک اطلاعاتی] FROM DISK = 'مسیر فایل بانک اطلاعاتی'
string query = "USE master RESTORE DATABASE [aaa] FROM DISK = 'C:\\DataBase\\aaabackup.MDF'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("بازیابی به درستی انجام شد");
}
catch
{
MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی");
}
}
}
}
-
نقل قول: backup , Restore database
mohammady2 جان.کد شما رو آزمایش کردم.رستورش اررور زیر رو می ده :
نقل قول:
Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.
-
نقل قول: backup , Restore database
ببین عزیز اگ برنامه رو در یک پروژه ساده با یه فرم انجام بدی میبینی جواب میده مشکل اینجاست که تو وسط اجرای برنامهت میخوای ریاستور کنی .به فرض اگه قبل از لاگین شدن به برنامت یعنی باز شدن دیتابیست این کد رو امتحان کنی میبینی جواب میده حالا منم دنبال اینم که میشه بدون خروج از برنامه ارتباط رو قطع و ری استور کرد؟
-
نقل قول: backup , Restore database
نقل قول:
ببین عزیز اگ برنامه رو در یک پروژه ساده با یه فرم انجام بدی میبینی جواب میده مشکل اینجاست که تو وسط اجرای برنامهت میخوای ریاستور کنی .به فرض اگه قبل از لاگین شدن به برنامت یعنی باز شدن دیتابیست این کد رو امتحان کنی میبینی جواب میده حالا منم دنبال اینم که میشه بدون خروج از برنامه ارتباط رو قطع و ری استور کرد؟
پست های اول این تایپیک رو نگاه کن.یک کدی هست که نمی دونم سینگل یوزر می کنه و ... از این حرف ها...
ببین چیزی سر در می یاری؟
-
نقل قول: backup , Restore database
سلام به همه
زود تر مشكل رو حل كنيد من هم اين مشكل رو دارم
اگه تونستم حلش كنم حتما" به همه مي گم
خيلي ممنوع از كد هاي خوبي كه در وبلاگ گذاشتيد
-
نقل قول: backup , Restore database
سلام به همه
زود تر مشكل رو حل كنيد من هم اين مشكل رو دارم
اگه تونستم حلش كنم حتما" به همه مي گم
خيلي ممنوع از كد هاي خوبي كه در وبلاگ گذاشتيد
-
نقل قول: backup , Restore database
مشکل کد mohammady2 برای restore این است که در connection string با DB ارتباط برقرار شده است که قرار است عمل restore بر روی آن انجام گیرد
برای حل این مشکل باید در connection string نام پایگاه داده مشخص نشود و یا با پایگاه داده master ارتباط برقرار شود (ضمن اینکه نباید کانکشن فعالی به آن DB داشته باشیم)
-
نقل قول: backup , Restore database
شما اگر مطالب همين تاپيك رو به دقت مطالعه مي كرديد، جوابتان را مي گرفتيد.
به هر حال به لينك زير مراجعه كنيد(اين لينك را در چند پست قبل نيز گذاشته ام)
اگر مشكلتان حل نشد متن خطا را بگذاريد.
خود من از اين روش استفاده مي كنم و مشكلي ندارم.
https://barnamenevis.org/showthread.php?t=118712
به پست سوم و چهارم مراجعه نماييد.
موفق باشيد.
-
نقل قول: backup , Restore database
نقل قول:
نوشته شده توسط
pars.engineer
خوب اين كه معلومه كه از اين خط خطا مي گيرد. اينكه چه خطايي مي گيرد مهم است.
به هر حال براي backUp كد زير را استفاده كنيد.
objCommand =
newSqlCommand("BACKUP DATABASE YourDataBase TO DISK = N'" + txtDataFileName.Text + "'" +
" WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10", objConnection);
objConnection.Open();
intSuccessRecovery = objCommand.ExecuteNonQuery();
objConnection.Close();
روش Restore هم در لينك زير كاملا توضيح داده ام.
موفق باشيد.
دستتون درد نکنه کدش درست و عالی هستش:تشویق:
-
نقل قول: backup , Restore database
-
نقل قول: backup , Restore database
-
نقل قول: backup , Restore database
با سلام،
در هنگام Backup و Restore شما به بانك مورد نظر متصل هستيد.
معمولاً پس از Backup در آينده مي خواهيد از آن استفاده كنيد و Restore نماييد...
شايد بشود روش شما را اصلاح كرد ولي اگر بخواهيد به همان صورتي كه Backup گرفته ايد Restore نماييد ، به هيچ عنوان موفق نخواهيد شد.
زيرا ديتابيسي كه در حال استفاده است و اتصال شما به SQLServer از طريق آن است اجازه نمي دهد آنرا Restore نماييد. (حداقل در همه حالات جواب نمي دهد؛ و يك برنامه نويس بايد تمام حالت ها را در نظر بگيرد.)
شما مي توانيد براي اين كار ديتابيس در حال استفاده را از ديتابيس خود به "master" تغيير دهيد و پس از اتمام Backup و يا Restore به حالت اول بازگردانيد.
ولي من براي اين كار (چون خودم يك دور سر همين پدرم درآمده) يك Script نوشته ام كه ميتوانيد در برنامه خود به صورت Script فراخواني كنيد و يا آنرا به صورت Stored Procedure درآوريد. (كه بهتر است و راحت تر است)
اسكريپت Backup كه يك Stored Procedure براي Backup مي سازد.
USE [نام ديتابيس]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BackupDB]
@BackupPath varchar(max)
AS
backup database [نام ديتابيس] to disk =@BackupPath with INIT, SKIP, NOUNLOAD, STATS = 10
RETURN
و
اسكريپت Restore كه يك Stored Procedure براي Restore مي سازد.
use [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[RestoreDB]
@BackupPath varchar(max)
AS
RESTORE DATABASE [نام ديتابيس]
FROM DISK = " + "'" + RestorePath + "'" + " WITH RECOVERY, REPLACE
RETURN
در صورت هرگونه سوال در خدمتم.
موفق باشيد.
-
نقل قول: backup , Restore database
-
نقل قول: backup , Restore database
سلام بر همه بر و بچ:قلب:
سیتم backtp گیری Linq چه جوریه؟
-
نقل قول: backup , Restore database
نقل قول:
نوشته شده توسط
javapersian
سلام عالب بود ممنون.
خواهش مي كنم عزيز ، قابل نداشت.
-
نقل قول: backup , Restore database
روی لوکال دستورات کار می کنه ولی من روی وب به این خطا بر میخورم. پرمیشن هم همه جوره ست کردم ولی هنوز خطا داره
Cannot open backup device 'c:\\b.bak'. Operating system error 5(Access is denied.).
BACKUP DATABASE is terminating abnormally.
آدرس رو روی هاست هم که میدم همین خطا رو میده.