vs.net里的安装部署的安装数据库操作

 1、添加一个新项目->选择类库模板->命名为DBCustomAction    
  2、单击项目右键->添加新项->选择安装程序类(命名为DBCustomAction.cs)    
  3、在服务器资源管理器中添加->连接到数据库->指定用户密码(选择允许保存密码)->数据库选择master    
  4、切换到DBCustomAction.cs的视图状态->将服务器资源管理器数据库连接中的master.dbo拖动到designer中    
  5、添加一个新项sql.txt(注意要使用小写),输入下列sql代码    
  CREATE   TABLE   [dbo].[MK_Employees]   (    
  [Name]   [char]   (30)   COLLATE   SQL_Latin1_General_CP1_CI_AS   NOT   NULL   ,    
  [Rsvp]   [int]   NULL   ,    
  [Requests]   [nvarchar]   (4000)   COLLATE   SQL_Latin1_General_CP1_CI_AS   NULL      
  )   ON   [PRIMARY];    
   
  ALTER   TABLE   [dbo].[MK_Employees]   WITH   NOCHECK   ADD      
  CONSTRAINT   [PK_MK_Employees]   PRIMARY   KEY   CLUSTERED      
  (    
  [Name]    
  )   ON   [PRIMARY];    
  (P.S:也可以直接用SqlServer导出)    
   
  6、在sql.txt的右键属性中->生成操作->嵌入的资源    
  7、将DBCustomAction.cs切换到代码视图,添加下列代码    
  private     string   GetSql(string   Name)    
              {    
                    try    
                    {    
                          Assembly   Asm   =   Assembly.GetExecutingAssembly();    
                          Stream   strm   =   Asm.GetManifestResourceStream(Asm.GetName().Name   +   "."+Name);    
                          StreamReader   reader   =   new   StreamReader(strm);    
                          return   reader.ReadToEnd();    
                    }    
                    catch   (Exception   ex)    
                    {    
                          Console.Write("In   GetSql:"+ex.Message);    
                          throw   ex;    
                    }    
              }    
   
              private   void   ExecuteSql(string   DataBaseName,string   Sql)    
              {    
                    System.Data.SqlClient.SqlCommand   Command   =   new   System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);    
   
                    Command.Connection.Open();    
                    Command.Connection.ChangeDatabase(DataBaseName);    
                    try    
                    {    
                          Command.ExecuteNonQuery();    
                    }    
                    finally    
                    {    
                          Command.Connection.Close();    
                    }    
              }    
   
   
              protected   void   AddDBTable(string   strDBName)    
              {    
                    try    
                    {    
                          ExecuteSql("master","CREATE   DATABASE   "+   strDBName);    
                          ExecuteSql(strDBName,GetSql("sql.txt"));    
                    }    
                    catch(Exception   ex)    
                    {    
                                Console.Write("In   exception   handler   :"+ex.Message);    
                    }    
              }    
   
              public   override   void   Install(System.Collections.IDictionary   stateSaver)    
              {    
                      base.Install(stateSaver);    
                            AddDBTable(this.Context.Parameters["dbname"]);    
              }    
   
   
  8、再添加一个新项目,(选择添加到解决方案中)->项目类型为安装项目->命名为DBCustomAction   Installer    
  9、选择应用程序文件夹->添加->项目输出->主输出    
  10、在方案资源管理器中->右键安装项目(DBCustomAction   Installer)->视图->用户界面    
  11、选中启动结点->添加对话框->文本A    
  12、选动文本框A->右键->上移一直到最顶端    
  13、选择文本框A属性->修改BannerText,(Specify   Database   Name)    
  14、修改BodyText(This   dialog   allows   you   to   specify   the   name   of   the   database   to   be   created   on   the   database   server.   )    
  15、修改EditLabel1(Name   of   DB),修改Edit1Porperty(CUSTOMTEXTA1),将其他Edit2,3,4的Edit(2,3,4)Visible属性设为false;    
  16、在方案资源管理器中->右键安装项目(DBCustomAction   Installer)->视图->自定义操作    
  17、选中安装结点->添加->双击应用程序文件夹->主输出来自DBCustomAction(活动)->右键属性->CustomActiveData属性修改为/dbname=[CUSTOMTEXTA1]    
  18、编译生成,OK!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值