首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 正文

C# 开发和使用中的23个技巧

  31.怎样通过winform安装程序在Sql Server数据库上建表?

  ① [项目]—[添加新项]

  类别:代码;模板:安装程序类。

  名称:MyInstaller.cs

  ② 在SQL Server建立一个表,再[所有任务]—[生成SQL脚本]。

  生成类似如下脚本(注意:把所有GO语句去掉):

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MyTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  drop table [dbo].[MyTable]
  CREATE TABLE [dbo].[MyTable] (
  [ID] [int] NOT NULL ,
  [NAME] [nchar] (4) COLLATE Chinese_PRC_CI_AS NOT NULL
  ) ON [PRIMARY]

  ALTER TABLE [dbo].[MyTable] WITH NOCHECK ADD
  CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED
  (
  [ID]
  ) ON [PRIMARY] 

 
  ③ [项目]—[添加现有项]。mytable.sql—[生成操作]-[嵌入的资源]。

  ④ 将MyInstaller.cs切换到代码视图,添加下列代码:

  先增加:

  using System.Reflection; 
  using System.IO; 
  然后:

  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.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(); 
  sqlConn.ConnectionString = "server=myserver; uid=sa; password=; database=master"; 
  System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConn); 

  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("mytable.sql")); 
  }

  catch(Exception ex)
  {
  Console.Write("In exception handler :"+ex.Message); 
  }
  }

  public override void Install(System.Collections.IDictionary stateSaver)
  {
  base.Install(stateSaver); 
  AddDBTable("MyDB"); //建一个名为MyDB的DataBase
  } 


  ⑤ [添加新项目]—[项目类型:安装和部署项目]—[模板:安装项目]—[名称:MySetup]。

  ⑥ [应用程序文件夹]—[添加]—[项目输出]—[主输出]。

  ⑦ 解决方案资源管理器—右键—[安装项目(MySetup)]—[视图]—[自定义操作]。[安装]—[添加自定义操作]—[双击:应用程序文件夹]的[主输出来自***(活动)]。

上一页  [1] [2] [3] [4] [5] [6] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航