赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

如何在安装包中自动为客户创建数据库

发布时间:2007.08.24 02:02     来源:赛迪网    作者:xiaoqiao

步骤:

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! (责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 怎样才能有效的限制特定的IP访问数据库 (08-24) · 实例解析:Sybase数据库安全性控制策略 (08-23)
· 细化解析如何建立一个非常简单的数据库 (08-23) · 设计和建立数据库之查看示例数据库结构 (08-23)
· 解析数据库应用程序体系结构的内部结构 (08-23) · 解析数据库应用程序体系结构的内在特性 (08-23)
· 用开发工具和编程语言开发ODBC应用程序 (08-23) · Adaptive Server Anywhere中的编程接口 (08-23)
· 更改数据库表中现有行内的任何或所有值 (08-23) · 数据库应用程序的术语和概念 (08-23)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管