以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]备份数据库 动态目录  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94535)

--  作者:zswushi
--  发布时间:2016/12/26 10:07:00
--  [求助]备份数据库 动态目录
请问下,我备份数据库时,想动态指定目录位置,该怎样写代码,谢谢 !

Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog 
dlg.Filter= "数据库文件|*.bak" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then 
Dim cmd As New SQLCommand

cmd.CommandText = "use master;BACKUP DATABASE X0 TO DISK = \'E:\\数据备份\\X0.bak\' WITH FORMAT;"

cmd.ExecuteNonQuery()
End If
messagebox.show("数据备份成功!")

标颜色的部分,我想动态指定目录,也就是选择那个路径,哪个文件夹,就保存在哪个文件里边,谢谢老师指导!
[此贴子已经被作者于2016/12/26 10:08:18编辑过]

--  作者:有点色
--  发布时间:2016/12/26 10:11:00
--  

1、备份的时候,是备份在sqlserver所在的电脑上的,而不是你的电脑。

 

2、你可以在服务电脑搭建ftp,备份到对应路径后,你再下载到你本地计算机去。


--  作者:zswushi
--  发布时间:2016/12/26 10:25:00
--  
我知道是备份在服务器电脑上,服务器电脑有 几个分区,有时我想让客户备份到U盘上,这个是做的手动备份,我会设置自动备份,就是我指定在哪个目录,就备份在哪个位置,不用代码提前指定路径

[此贴子已经被作者于2016/12/26 10:26:23编辑过]

--  作者:有点色
--  发布时间:2016/12/26 11:01:00
--  

 如果你是在服务器上操作的,就这样写

 

cmd.CommandText = "use master;BACKUP DATABASE X0 TO DISK = \'" & dlg.FileName & "\' WITH FORMAT;"


--  作者:zswushi
--  发布时间:2016/12/26 12:46:00
--  
可以啦,非常感谢!!
--  作者:zswushi
--  发布时间:2016/12/26 14:54:00
--  
还有请问下,我想设置为动态的数据库 名  我设置了变量  zf2 作为数据库的变量名,怎么连接名称一直出错呢??谢谢!

Dim str1 As String = Filesys.ReadAllText(ProjectPath & "配置文件.ini",system.text.encoding.default)
Dim str2() As String = Str1.Split(vblf)
Dim str3() As String
Dim zf2 As String
For i As Integer =1 To str2.length -1
    str3 = str2(i).split("=")
    If str3.length = 2 Then
        If str3(0) = "数据库名" Then
            zf2 = str3(1)
        End If
    End If
Next
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "数据库文件|*.bak" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Dim cmd As New SQLCommand

    cmd.ConnectionName = " & zf2 & "   

    cmd.CommandText = "use master;BACKUP DATABASE “ & zf2 & ” To DISK = \'" & dlg.FileName & "\' WITH FORMAT;"
    cmd.ExecuteNonQuery()
    messagebox.show("数据备份成功!")
End If

上述着色的 两个 变量 应该 动态合成有问题呀,我试了很久都不行,

--  作者:有点色
--  发布时间:2016/12/26 15:39:00
--  
    cmd.ConnectionName = zf2

    cmd.CommandText = "use master;BACKUP DATABASE " & zf2 & " To DISK = \'" & dlg.FileName & "\' WITH FORMAT;"

--  作者:zswushi
--  发布时间:2016/12/26 16:18:00
--  
  应该是 这句  cmd.ConnectionName = zf2  出问题呀 

我之前这样写过, 软件一直提示 ,不存在名为  “ *****”  的 数据源呀, 若我换成 真正的数据库名称 ,就可以,用变量来替换就不行呀




--  作者:有点色
--  发布时间:2016/12/26 16:26:00
--  

msgbox(zf2) 看看弹出的值是否正确。

 

如果不正确,说明是你获取到的东西有问题。


--  作者:zswushi
--  发布时间:2016/12/26 17:40:00
--  
messagebox  提示  



然后系统弹出的提示 :


我本来的数据库 也是 X1BJ,直接用X1BJ就没有问题
图片点击可在新窗口打开查看此主题相关图片如下:数据库名.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:保存时的提示.jpg
图片点击可在新窗口打开查看