我的程序里有个备份的界面如何将现在程序连接的服务器端的数据库备份到本地呢???SqlConnection con = new SqlConnection("server=" + serverName + ";database=lnsurance;uid=" + username + ";pwd=" + pass + ";");
con.Open();
SqlCommand com = new SqlCommand();
com.CommandText = "BACKUP DATABASE lnsurance TO DISK='" + path + "'";
com.Connection = con;
com.ExecuteNonQuery();
con.Close();
con.Dispose();
return true;serverName是备份到那里吧??那标识选择的是服务器端的数据库呢??
con.Open();
SqlCommand com = new SqlCommand();
com.CommandText = "BACKUP DATABASE lnsurance TO DISK='" + path + "'";
com.Connection = con;
com.ExecuteNonQuery();
con.Close();
con.Dispose();
return true;serverName是备份到那里吧??那标识选择的是服务器端的数据库呢??
{
string strg = Application.StartupPath.ToString();
strg = strg.Substring(0, strg.LastIndexOf("\\"));
strg = strg.Substring(0, strg.LastIndexOf("\\"));
strg += @"\Data";
string sqltxt = @"BACKUP DATABASE db_MrCy TO Disk='" + strg + "\\" + txtpath.Text +".bak"+ "'";
SqlConnection conn = BaseClass.DBConn.CyCon();
conn.Open();
SqlCommand cmd = new SqlCommand(sqltxt, conn);
cmd.ExecuteNonQuery();
conn.Close();
if (MessageBox.Show("备份成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) == DialogResult.OK)
{
this.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
如果你要备份到本地,只有2步, 1是备份到服务器上, 2是复制(比如下载)到本地。
如果你要备份的是数据库本身,则用备份的方式ok,用复制数据文件和日志文件的方式也OK,不过要当时没人在操作数据库。 如果你要备份的不是“数据库”而是“数据库里的数据”, 还可以使用BCP命令来做(该命令可以以让人难以相信的速度把数据导出来在txt里~~因为有缓存机制协助,BCP导入导出的速度甚至能接近或者瞬间略超过硬盘的读写速度~~ 根据表结构不同,和硬盘不同,速度一般在每秒 3万到200万行之间)
bak为一个完全共享的文件夹.