打包SQL

c#web打包sql 借鉴MSDN webcasts的Asp.net程序部署和李洪根的一篇文章,然后加上自己的亲身体会,把整个SQL和Asp.net(vb.net)一起打包的全过程写一下。一.准备必要的文件1. SQL脚本文件,生成以后安装过程中需要的表和存储过程等等;生成之后,就暂时把它命名为db.sql(注意大小写)2.LisenceFile.rtf的安装文件,因为我的系统是个人的,而且free的,所以就没有做。这 阅读详情

参考《ASP.NET与SQL一起打包部署安装》,这篇文章是针对VB.NET与SQL 一起打包的,但是我使用的是C#,当然只要修改一下主要安装类库就行了!C#的类库代码如下:DBCustomAction.cs

using System;
using System.Collections;
using System.Data.SqlClient;
using System.ComponentModel;
using System.Configuration.Install;
using System.Diagnostics;
using System.IO;
using System.Xml;
using System.Reflection;


namespace PMS
{
 /// <summary>
 /// DBCustomAction 的摘要说明。
 /// </summary>
 [RunInstaller(true)]
 public class DBCustomAction : System.Configuration.Install.Installer
 {
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  private System.ComponentModel.Container components = null;

  public DBCustomAction()
  {
   // 该调用是设计器所必需的。
   InitializeComponent();

   // TODO: 在 InitializeComponent 调用后添加任何初始化
  }

  private void ExecuteSql(string conn,string DatabaseName,string Sql)
  {
   SqlConnection mySqlConnection=new SqlConnection(conn);  
   SqlCommand Command=new SqlCommand(Sql, mySqlConnection);  
   mySqlConnection.Open();  
   mySqlConnection.ChangeDatabase(DatabaseName);  
   try
   {
    Command.ExecuteNonQuery();
   }  
   finally
   {
    //close Connection  
    mySqlConnection.Close();
   }
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if(components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  //

  public override void Install(System.Collections.IDictionary stateSaver)
  {
   base.Install(stateSaver);
  
   // ------------------------建立数据库-------------------------------------------------
  
   try
   {
    string connstr = String.Format("data source={0};user id={1};password={2};persist security info=false;packet size=4096", Context.Parameters["server"],Context.Parameters["user"], Context.Parameters["pwd"]);
    //'根据输入的数据库名称建立数据库  
    ExecuteSql(connstr, "master", "CREATE DATABASE " +Context.Parameters["dbname"]);  
    //'调用osql执行脚本  
    Process sqlprocess=new System.Diagnostics.Process();
    sqlprocess.StartInfo.FileName = "osql.exe ";  
    sqlprocess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", Context.Parameters["user"], Context.Parameters["pwd"],Context.Parameters["dbname"],Context.Parameters["targetdir"]);
    sqlprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    sqlprocess.Start();  
    sqlprocess.WaitForExit(); // '等待执行
    sqlprocess.Close();
  
    //'删除脚本文件
    FileInfo sqlfileinfo =new FileInfo(String.Format("{0}db.sql",Context.Parameters["targetdir"]));
  
    if (sqlfileinfo.Exists)
    {
     sqlfileinfo.Delete();
    }
   }
   catch(Exception ex)
   {
    throw ex;  
   }
  
   //' ---------------------将连接字符串写入Web.config-----------------------------------
  /*
   try
   {
    FileInfo fileinfo = new FileInfo(Context.Parameters["targetdir"] + "http://www.cnblogs.com/yuanlei347/admin/file://web.config/");
    if (!fileinfo.Exists)
    {
     throw new InstallException("没有找到配置文件");
  
    }
  
    //'实例化xml文档
  
    XmlDocument xmldocument=new XmlDocument();
  
    xmldocument.Load(fileinfo.FullName);
  
  
  
    //'查找到appsettings中的节点
  
    //XmlNode node=new XmlNode();
  
    Boolean FoundIt  = false;
  
    foreach(XmlNode node in xmldocument.SelectSingleNode("appSettings").ChildNodes)
    {  
     if (node.Name == "add")
     {  
      if (node.Attributes.GetNamedItem("key").Value == "connString")
      {
       //'写入连接字符串
       node.Attributes.GetNamedItem("value").Value= String.Format("Persist Security Info=False;Data Source={0};Initial Catalog={1};User ID={2};Password={3};Packet Size=4096;Pooling=true;Max Pool Size=100;Min Pool Size=1",Context.Parameters["server"],Context.Parameters["dbname"], Context.Parameters["user"], Context.Parameters["pwd"]);
       FoundIt= true;  
      }  
     }  
    }
  
    if (!FoundIt)
    {  
     throw new InstallException("web.Config 文件没有包含connString连接字符串设置");
    }   
    xmldocument.Save(fileinfo.FullName);
   }
   catch(Exception ex)
   {
    throw ex;
   } 
   */         
  }

  #region 组件设计器生成的代码
                 /// <summary>
                 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
                 /// 此方法的内容。
                 /// </summary>
                 private void InitializeComponent()
                 {
                  components = new System.ComponentModel.Container();
                 }
  #endregion
 }
}

我不需要修改Web.config的部分.
注意.如果不用SA用户登录数据库的,请先在服务器上建立特定的SQL用户

掌握高级SQL查询:表匹配与打包查询技巧 本篇博客深入探讨了高级SQL查询的构建,涵盖了外部链接、差异和除法操作符的使用,以及空值对查询的影响。通过实例和详细解释,读者将学会如何构建涉及这些高级功能的SQL语句,并理解打包查询(子查询)的类型及其应用。 阅读详情

相关推荐

C#项目打包_并自动安装SQL数据库

C#项目打包

navicat 将数据库打包成.sql文件

数据库打包SQL文件

m0_59673430的博客 5644

AM驱动架构—优质Mini-LED显示技术解决方案

(VR)和增强现实(AR)设备:MiniLED背光驱动方案适用于虚拟现实和增强现实设备中的显示技术,通过高亮度和高对比度的显示效果,创造更逼真的虚拟体验此外,MiniLED背光还能够实现更快的响应速度,减少图像残影,使得用户的动作在虚拟环境中更加流畅自然。以其出色的性能和广泛的应用前景备受关注是实现MiniLED显示效果的重要环节。1)更高的亮度和对比度:尺寸更小,可以在同样面积的显示屏上配置更多的LED,并且通过独立控制每一个MiniLED,可以实现更高的亮度和更细致的对比度,使得显示画面更加鲜明清晰。

isweekDN的博客 2762

C#打包SQL数据库部署安装(转)

参考《ASP.NET与SQL一起打包部署安装》,这篇文章是针对VB.NET与SQL 一起打包的,但是我使用的是C#,当然只要修改一下主要安装类库就行了!C#的类库代码如下:DBCustomAction.csusing System;using System.Collections;using System.Data.SqlClient;using System.ComponentModel;u...

weixin_30247307的博客 227

Tiny windows 11 安装与部署

需要注意,安装完后键入 windows 键,输入 update 先更新系统。点击开始,等待完成即可,用户可自定义。

m0_73351035的博客 9046

Python3.8下MvCameraControl.dll加载失败?3种方法彻底解决FileNotFoundError

本文针对Python3.8及以上版本在Windows平台调用MvCameraControl.dll时出现的FileNotFoundError问题,深入剖析了其根源在于Python 3.8引入的DLL加载安全机制变更。文章提供了三种核心解决方案:显式指定DLL完整路径、使用os.add_dll_directory()添加可信目录,以及利用ctypes的winmode参数进行精细控制,并给出了工程化封装建议,帮助开发者彻底解决此兼容性问题。

weixin_29093017的博客 191

C#打包数据库

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; u...

weixin_30920597的博客 176

OpenWrt南京电信PPPoE IPv6配置:从零搭建稳定双栈网络

本文详细指导如何在南京电信PPPoE宽带环境下,为OpenWrt路由器配置稳定的IPv6双栈网络。核心在于正确设置WAN6接口为DHCPv6客户端,并请求/60前缀,同时配置LAN口分发地址并放行防火墙关键流量,确保内网设备获得原生IPv6连接。

water的专栏 1339

VS2015打包发布SQL Server Express

最近把一个WinForms项目从VS2010迁移到VS2015,遇到SQL Server Express打包问题,折腾了好几天,解决过程曲折离奇,所以记录分享一下。VS2010打包SQL Server Express数据库先回顾一下VS2010中怎么打包SQL Server Express。 VS2010自带安装项目模版,新建一个安装项目,就可以很方便地打包WinForm产品。 在安装项目属性中

SunnyTrudeau的博客 7902

Difftest踩坑笔记(一)

Difftest是差分测试框架,有什么用呢?高性能CPU的设计需要做复杂的测试,传统的测试方法运行较慢,而且出了问题很难定位,Difftest就是为了解决这两个问题。

http://www.icfgblog.com/ 4196

北斗导航 | 基于matlab的卫星导航单点定位算法

单点定位(Single Point Positioning, SPP)通过接收机观测至少4颗卫星的伪距(含误差的距离测量值),解算接收机位置(经度、纬度、高度)及钟差。HDOP < 2 为高精度定位条件。

尘世冰封的专栏 969

mysql 打包 sql

MySQL 数据库打包 SQL 语句的科普文章 MySQL 是一种广泛使用的开源关系数据库管理系统。在日常的数据库管理中,我们经常需要将数据库中的表结构和数据导出成 SQL 文件,以便进行备份、迁移或版本控制。本文将介绍如何使用 MySQL 命令行工具打包 SQL 语句,并提供一些实用的代码示例。 1. 准备工作 在开始打...

weixin_35510737的博客 344

Android Framework AMS面试题及参考答案

比如,应用 B 的 Activity 如果是 “singleTask” 启动模式,AMS 会查找应用 B 是否有包含该 Activity 的任务栈,若有则将这个任务栈切换到前台,并且清除该 Activity 之上的其他 Activity,实现流畅的跨应用跳转体验。如果一个 Activity 的启动依赖于另一个 Activity 的结果,AMS 会暂停当前 Activity 的部分生命周期操作,等待依赖的 Activity 完成相关操作后,再继续当前 Activity 的生命周期进程。

大模型大数据攻城狮的专栏 1857

WinForm开发(6)——C#/winform程序打包部署时,如何把SQL数据库一起打包进去

打包数据库到安装程序中 方法1. 备份/恢复 先备份数据库: backup database 数据库 to disk='c:\备份.bak' 将备份文件打包到安装程序中. 在第一次运行程序的时候,进行数据库恢复(或专门做一个系统配置的程序,来控制完成此工作) restore database 数据库 from disk='c:\备份.bak' 方法2. 分离/附加 注意:这个方法中的分离等于删掉...

qq_34573534的博客 3269

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2960

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

将SQL过程打包到iSeries应用程序中

来自developerWorks档案库 肯特·米利根(Kent Milligan) 存档日期:2019年5月15日 | 首次出版:2001年11月12日 本文介绍了一种经济高效的打包SQL过程的方法,该方法不需要其他软件。 此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技术的飞速发展,某些内容,步骤或插图可能已更改。 查看PDF文件 翻译自: https...

cusi77914的博客 140

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SQL+C#打包问题

<br />VS05+SQL05写的程序,已部署了主输出并附带了framework2.0和SQL express 05,剩下的我该做什么呢?数据库文件怎么打包?例如……什么脚本啊……或者转成XML啊……或者是这个那个的/<br />我想知道前段时间我有看到国外一个人的blog,<br />里面就全部是.net framework的源代码,可是我现在连接忘 了。<br />面试的时候遇到高手,就会面这方面的思想,但也有不面这个思想的,<br />网上下载的10.6.1827版本说是有个吾爱破解,但一个月后还是

flyly88的专栏 563

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Winfrom应用程序打包把sql2005 express打包进去

Winfrom应用程序打包把sql2005 express打包进去一、添加系统必备1)在解决方案资源管理器中右击Setup1项目—属性—系统必备,选中sql2005 express,如下图: 选择第二项:从我的应用程序相同的位置下载系统必备组件,确定则在Setup1—Debug目录下会出现SqlExpress文件夹,文件夹里的sqlexpr32.exe文件就是sql2005

2154

c# 打包mysql_C#打包SQL数据库部署安装

借鉴MSDN webcasts的Asp.net程序部署和李洪根的一篇文章,然后加上自己的亲身体会,把整个SQL和Asp.net(vb.net)一起打包的全过程写一下。一.准备必要的文件1. SQL脚本文件,生成以后安装过程中需要的表和存储过程等等;生成之后,就暂时把它命名为db.sql(注意大小写)2.LisenceFile.rtf的安装文件,因为我的系统是个人的,而且free的,所以就没有做。这...

weixin_31109487的博客 1742

c#打包mysql配置文件_C#打包SQL数据库部署安装(转)

参考《ASP.NET与SQL一起打包部署安装》,这篇文章是针对VB.NET与SQL 一起打包的,但是我使用的是C#,当然只要修改一下主要安装类库就行了!C#的类库代码如下:DBCustomAction.csusing System;using System.Collections;using System.Data.SqlClient;using System.ComponentModel;usi...

weixin_33587161的博客 253

C#项目打包以及自动安装SQL Sever数据库

本文将介绍C#项目打包以及自动安装SQL Sever数据库,包括创建部署项目、将主程序项目的输出添加到部署项目中、创建安装程序类、创建自定义安装对话框等等。 ’power by: landlordh   ’for 2000,xp,2003   Module uninstall   Sub Main()   Dim myProcess As Process = N

chenli985的专栏 830

VS2019程序打包(带sql sever转access数据库)

因为自己在打包的时候根据网上的操作却并没有实现带数据库的操作,偶然看到有人说用accesss属于小型数据库系统,更容易打包,经过尝试之后确实也成功了,今天便将自己的打包过程分享给大家。 因为自己刚开始是用SQLSever做的数据库,所以先将数据库直接导出至access,至于使用脚本文件可不可以,未去尝试。 ...

w18789476022的博客 4213

IDEA连接SQL Sever,并将java打包,在命令行运行

IDEA连接SQL Sever数据库并将java打包,在命令行运行

wang_1030666的博客 594

C#打包SQL数据库部署安装

<br />参考《ASP.NET与SQL一起打包部署安装》 ,这篇文章是针对VB.NET与SQL 一起打包的,但是我使用的是C#,当然只要修改一下主要安装类库就行了!C#的类库代码如下:DBCustomAction.cs<br /><br /> using System;<br /> using System.Collections;<br /> using System.Data.SqlClient;<br /> using System.ComponentModel;<br /> using

plean的专栏 510
上一篇: Windows2003 合并分区
下一篇: SQL行列转换
wangping06
博客等级 码龄20年 32粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值