2017-02-17 48 views
0

我试图让备份和恢复作为开始我试图获得备份数据库,这样写这样如何指向数据库C#WPF的LocalDB的相对路径

try 
{ 
    string cbdfilename = "c:\\Bbcon.bak"; 
    SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\BbCon.mdf;Integrated Security=True;Connect Timeout=30;"); 
    string sql = "Backup database @DBNAME to Disk = @FILENAME with Format"; 
    SqlConnection.ClearAllPools(); 
    SqlCommand cmd = new SqlCommand(sql, con); 
    cmd.Parameters.AddWithValue("@DBNAME", "BbCon"); 
    cmd.Parameters.AddWithValue("@FILENAME", cbdfilename); 
    con.Open(); 
    try 
    { 
     cmd.ExecuteNonQuery(); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show("Backup DB failed" + ex.ToString()); 
    } 
    finally 
    { 
     con.Close(); 
     con.Dispose(); 
    } 
} 
catch (SqlException ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
finally 
{ 
    if (con.State == ConnectionState.Open) 
    { 
     con.Close(); 
    } 
} 

一个代码,但是当我运行这个代码我得到一个错误的数据库BbCon不存在检查你的数据库中,我不知道什么是肯定的问题,但我想我已经给出错误的数据库路径我知道路径OD数据库中正确很喜欢

C:\Users\Mahdi Rashidi\AppData\Local\Apps\2.0\NOL11TLW.9XG\CZM702AQ.LPP\basu..tion_939730333fb6fcc8_0001.0002_fd707bbb3c97f8d3 

但这个项目是为一些其他客户端,所以当我安装此软件到其他计算机路径将改变,所以我会得到一个错误,所以我求求大家帮我找到一个更好的解决方案,创建备份programattically

回答

0

我建议你创建一个app.config文件并把备份目标的路径有

OR

我做了前一段时间什么(动态加载组件,但这段代码可以让ü根据您正在运行的组件来检索路径位置),它是这样的:

(唐忘记将System.Reflection添加到您的使用清单中)

// get the current assembly from cache 
var currentAssembly = Assembly.GetEntryAssembly(); 

// if current assembly is null 
if (currentAssembly == null) 
{ 
    // get the current assembly from stack trace 
    currentAssembly = new StackTrace().GetFrames().Last().GetMethod().Module.Assembly; 
} 

// get the assemblies path (from returned assembly) 
assembliesPath = Path.GetDirectoryName(currentAssembly.Location); 

从这一点来说,现在你可以连接你“数据路径”,并保存你的数据在那里。

希望它有帮助。

+0

它帮助,但现在我得到另一个错误无法打开备份设备我很抱歉,如果我对你的问题感到恼火你 –

+0

第二个工作fine.error通过改变路径C:\用户\公众 –

+0

这很好,这个网站的目标是互相帮助。发布完整的代码进行深入分析,还有另外一个问题:1)你是否试图在本地机器上运行应用程序? 2)应用程序和数据库服务器是否在同一台计算机上运行?谢谢你。 – rmszc81