PDA

View Full Version : سوال: مشکل در کد پشتیبان گرفتن از دیتابیس



mohsen.nsb44
یک شنبه 29 اسفند 1389, 10:33 صبح
سلام من یه کد تو این سایت پیدا کردم برای پشتیبام گرفتن از دیتابیس اما یه مشکل داره که نمی دونم چطور حل میشه لطفا راهنمایی بکنین چکار باید کرد تا این خطا رفع بشه
مشکل خطیه که قرمز کردم یعنی oCommand نمی شناسه.
اگه روش بهتری هم سراغ دارین بگین ممنون می شم

private void Backup(string strFileName)
{
try
{
string command = @"BACKUP DATABASE DbProject TO DISK='" + strFileName + "'";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection(@" Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Documents and Settings\Mohsen\My Documents\Visual Studio 2008\Projects\project\project\DbProject.mdf;Integr ated Security=True;User Instance=True");

if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(oCommand,oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show(" ﳒا ﺖﻴﻘﻓﻮﻣ ﺎﺑ تﺎﻋﻼﻃا زا نﺎﺒﻴﺘﺸﭘ ﻪﺨﺴﻧ ﻪﻴﲥ ﺎ ﺪﺷ م. ");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
string strFileName = string.Empty;
saveFileDialog1.DefaultExt = "BAK";
saveFileDialog1.FileName = "BackupFile" + DateTime.Now.ToShortDateString();
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);
}
}

peymanjon
یک شنبه 29 اسفند 1389, 12:24 عصر
using System.Data.SqlClient;
using System.Globalization;

SqlConnection cn = new SqlConnection("your connection string");
SqlCommand cmd = new SqlCommand();


try
{
PersianCalendar pc = new PersianCalendar();
cn.Open();
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE Your database name TO DISK = 'D:\\aaaa\\" + "Your database name" + ".MDF'";

SqlCommand cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = cn;
cmd.ExecuteNonQuery();


MessageBox.Show("پشتیبان گیری به درستی انجام شد");
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
}
finally
{
cn.Close();
}

mohsen.nsb44
یک شنبه 29 اسفند 1389, 12:46 عصر
دوست عزیز با کد زیر مشکلم حل شد


SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\file.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//'گرفتن نام کامل دیتابیس
cmd.Connection.Close();

SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + Application.StartupPath + "\\backup.bak'";
cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
MessageBox.Show("database backup: ok");