这个涉及到打包程序的脚本编程,不同的打包程序有不同的方式,.net的我还不太清楚,不过,你可以试一下,做一个另外的程序或者是Script将你的数据库备件文件恢复到用户数据服务器上,在.net的安装项目上,打开安装项自定义操作编辑器,在[提交]中添加这个程序。你可以换一种方式,当用户第一次启动程序时,自动运行一个数据库脚本,把你的数据库备份恢复到用户的数据库上,再建立登录和数据库用户。

解决方案 »

  1.   

    象很多软件一样,先安装程序,再有个可执行文件安装数据库.
    要是我做就做个WinForm的数据库安装程序,用SqlCommand执行下面的Sql语句就行:
    EXECUTE sp_attach_db '数据库名', 
             '数据库文件名',
             '数据库日志文件名'
    '数据库文件名'和'数据库日志文件名'具体位置,可以在企业管理器中查到.
      

  2.   

    把数据备份成SQL文件,在安装程序最后一步那加上执行此SQL文件,就能导入了
      

  3.   

    CMIC(大象) 
    EXECUTE sp_attach_db '数据库名', 
             '数据库文件名',
             '数据库日志文件名'
    用这个需要事先知道数据库安装的地址,如果是网络的话,还需要对数据库服务器有读写权限 nebular(星云)、  ajqc(ajqc) 
    能讲一下比较具体点的过程么?
     dukaixy(无巧不成书) 
     期待你的实现代码,非常感谢
      

  4.   

    数据备份成SQL文件后,如何在安装程序中加上“执行sql文件”呢?
      

  5.   

    今天上午太忙了。现在才上1、你先按        http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxwlkWalkthroughUsingCustomActionToCreateDatabaseDuringInstallation.asp           这上面的做好。
    2、将数据库的结构导出,用“;”替换所有有“go",并替换你的sql.txt文件
    3、将如下代码:
    Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)
       Dim Command As New SqlClient.SqlCommand(Sql, sqlConnection1)   Command.Connection.Open()
       Command.Connection.ChangeDatabase(DatabaseName)
       Try
          Command.ExecuteNonQuery()
       Finally
          ' Finally, blocks are a great way to ensure that the connection 
          ' is always closed.
          Command.Connection.Close()
       End Try
    End Sub
    改为:
    Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)
       Dim str = Split(Sql, ";")'将sql.txt中的代码分离
            Dim aa As Integer = 0
            Dim i
            For i = LBound(str) To UBound(str) Step 1
                Dim Command As New SqlClient.SqlCommand()
                Command.CommandText = str(aa)
                Command.Connection = SqlConnection1
                Command.Connection.Open()
                If aa > 3 Then   '在建好了数据库的sql的代码之后
                    Command.Connection.ChangeDatabase(DatabaseName)
                End If
                 Try
                    Command.ExecuteNonQuery()
                Finally
                    Command.Connection.Close()
                End Try
                aa = aa + 1
            Next
    End Sub   就这么简单了,你适当改一下都可以了,有什么问题
    QQ:15026930
    EMAIL:[email protected]
      

  6.   

    to dukaixy(无巧不成书) 
    你好.谢谢你的帮助,不过这代码只是生成数据库表结构的,而没有提到对表中的数据导出再导入。我希望的是能同时对数据库中的部分表的一些基本数据信息进行迁移
      

  7.   

    http://expert.csdn.net/Expert/topic/1913/1913409.xml?temp=.8648645如果可以的话,请到这个贴子再看一看