求助:ASP.NET打包的难题(包含数据库)

sffering 2004-01-16 08:22:13
需要实现以下功能:

1. It should be an .MSI package that can be installed on a Windows XP Pro PC with IIS preinstalled.
2. If the PC was not installed with .Net 1.1, the package will install it.
3. The package will install SQL Server Desktop Editioin engine.
4. The package will install a database named MOT(Monument Order Tracker) with one table named "order" with:
CREATE TABLE order
(
order_id INT NOT NULL,
order_number INT NOT NULL,
description VARCHAR(100) NULL,
status VARCHAR(15) NULL
)
5. The ASP.NET application contains only one page: order_list.aspx. It lists all records in the table order.
...全文
93 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlekela 2010-06-11
  • 打赏
  • 举报
回复
为什么我看不懂呢???
sffering 2004-01-20
  • 打赏
  • 举报
回复
thank you
huazaiboy 2004-01-20
  • 打赏
  • 举报
回复
兄弟好辛苦啊,我给你信箱发了一份我最近研究出来的代码
sffering 2004-01-17
  • 打赏
  • 举报
回复
继续顶,昨天的问题,今天希望得到解决
kerer 2004-01-16
  • 打赏
  • 举报
回复
.net框架的安装比较复杂,不是你的安装包可以控制的。况且客户也有权力决定是否安装.net框架。建议单独安装.net框架和msde
sffering 2004-01-16
  • 打赏
  • 举报
回复
to izzard(izzard)
打包进去,如何根据部署机器是否已经有.net1.1和MSDE ,来决定是否安装?
sffering 2004-01-16
  • 打赏
  • 举报
回复
另一个新问题:如何提供用户输入database名字,Machine名字,访问数据库的User,Password值的对话框。并且能通过此访问Local数据库,建库和初始化数据,然后还能改应用程序的webconfig文件里头的connectionstring的值。救命啊!!!!!
izzard 2004-01-16
  • 打赏
  • 举报
回复
安装包中打入 .Net 1.1 和MSDE 相应的MSM文件
sffering 2004-01-16
  • 打赏
  • 举报
回复
我顶啊!!!!
sffering 2004-01-16
  • 打赏
  • 举报
回复
2. If the PC was not installed with .Net 1.1, the package will install it.
3. The package will install SQL Server Desktop Editioin engine.

关于这两个需求,如何自动安装dotNetFramework 1.1 与SQL Server Desktop Editioin engine,并把数据库建好,导入数据???
zhaozhongju 2004-01-16
  • 打赏
  • 举报
回复
学习收藏
acewang 2004-01-16
  • 打赏
  • 举报
回复
http://www.itonline.gd.cn/ittech/list.asp?id=617
eagle_hb 2004-01-16
  • 打赏
  • 举报
回复
学习收藏
lvzm 2004-01-16
  • 打赏
  • 举报
回复
关注
xueqs 2004-01-16
  • 打赏
  • 举报
回复
up
hoge66 2004-01-16
  • 打赏
  • 举报
回复
up
zsww 2004-01-16
  • 打赏
  • 举报
回复
不错 学习!
wudixiaocaoren 2004-01-16
  • 打赏
  • 举报
回复

步骤:
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!

注:此文章主要来自于MSDN,本来代码使用vb.net,我用C#改写了一下,完整URL请参考
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxwlkWalkthroughUsingCustomActionToCreateDatabaseDuringInstallation.asp
另外没有接受客户数据库服务Server-Name和Password的对话框,我想既然可以接受DBNAME参数,那么接收Server-Name和Password应该也不难.
sffering 2004-01-16
  • 打赏
  • 举报
回复
我顶的好辛苦啊
chenzu 2004-01-16
  • 打赏
  • 举报
回复
好! 正是我想要的,
谢谢!
up!
加载更多回复(2)

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧