c#打包mysql配置文件_C#打包SQL数据库部署安装(转)
参考《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
{
///
/// DBCustomAction 的摘要说明。
///
[RunInstaller(true)]
public class DBCustomAction : System.Configuration.Install.Installer
{
///
/// 必需的设计器变量。
///
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();
}
}
///
/// 清理所有正在使用的资源。
///
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"] + "\\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 组件设计器生成的代码
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
我不需要修改Web.config的部分.
注意.如果不用SA用户登录数据库的,请先在服务器上建立特定的SQL用户
.
c#打包mysql配置文件_C#打包SQL数据库部署安装(转)相关推荐
- mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
打包数据库到安装程序中 方法1. 备份/恢复 先备份数据库: backup database 数据库 to disk='c:\备份.bak' 将备份文件打包到安装程序中. 在第一次运行程序的时候,进行 ...
- c#mysql连接数据库字符串_C# 连接SQL数据库字符串
一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myP ...
- odbc mysql 配置文件_ODBC连接主流数据库的配置方法
准备工作 安装ODBC基本组件: # yum install -y unixODBC unixODBC-devel 安装完成后可用odbcinst -j命令查看安装配置文件所在的位置,有两个比较常用的 ...
- 数据库服务器安装mysql数据库_My SQL数据库的安装与配置
MySQL是一个关系型数据库管理系统.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言 MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤 ...
- 【MySQL】如何导入SQL数据库
目录 如何导入SQL数据库 [例子1-以Terminal终端命令行导入] [例子2-以SQLyog图形化软件导入] 如何导入SQL数据库 如何将现成的数据库导入到MySQL中?有两种方式: 通过终端命 ...
- 图像存在hadoop比在mysql中_比较SQL数据库和Hadoop
鉴于Hadoop是一个数据处理框架,而在当前大多数应用中数据处理的主力是标准的关系数据库,那又是什么使得Hadoop更具优势呢?其中一个原因是,SQL(结构化查询语言)是针对结构化数据设计的,而Had ...
- 热血江湖数据库MYSQL修改_热血江湖SQL数据库架设方法
SQL数据库架设方法 第一步:首先是下载SQLSERVER啦. 第二步:安装程序选择SQL2000组件就是第一个--安装数据库服务器还是第一个一直下一步本地计算机一直默认下一步到选择本地系统用户--到 ...
- 用ASP自动生成SQL数据库的安装源程序
chinaasp论坛完整程序下载: [url]http://www.yescnet.com/manage.asp?url=down/list.asp[/url]**id=89 [url]http:// ...
- c++ mysql 配置文件_C++操作数据库写入到json配置文件中
1. 这次加了对int和varchar的处理 #include #include #include #include #include "json/json.h" #include ...
最新文章
- 反正我不信!马斯克谈元宇宙:没人愿意把屏幕贴脸上
- loadrunner中创建唯一随机数
- 计算机应用基础作业北语,北语计算机应用基础作业.doc
- 面向对象与软件工程—团队作业1
- 从资源管理器中,获取被选择的文件的路径(及文件夹)的API
- 微助教课件怎么下载_【微助教课件下载】[微助教]自测一下,您的课堂有好的开始和结束么?...
- NET中dictionary的一个小坑
- 14.最长公共前缀-LeetCode
- IPXX防护等级中关于防水实验的规定
- Weld(CDI)教程
- 渠道为王:销售渠道建设3部曲 读后感
- x64技术之SSDT_Hook
- 宏脉系统怎么改服务器地址,宏脉系统使用手册大全.doc
- 定积分证明题例题_数列极限求法十五种(25个例题+推文送给微积分和数学分析同学)...
- 2022年全球市场燃气烧烤架总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 离散数学_集合论部分_总结
- 逆矩阵的六个注意事项
- import_meta_graph 和 replicate_model_fn
- 文献管理软件——Endnote和Noteexpress选择哪个较为合适?
- 【2020年天梯赛—校内选拔赛】7-4手机话费
热门文章
- sap 标准委外和工序委外_「SAP技术」SAP MM 委外加工采购流程里副产品的收货
- .net core 集成 autofac.
- 题目1076:N的阶乘
- Linq to SQL学习
- 软件登录界面设计分享
- 遍历XML引擎版本以适应代码
- 16g版nexus5 升级带android 4.4,Nexus 5升级如何Android 4.4.1 Nexus 5升级到4.4.1方法教程
- 【python数据挖掘课程】十五.Matplotlib调用imshow()函数绘制热图
- Metal之Shading Language Specification(着色语言规范)
- 深度理解特斯拉自动驾驶解决方案 2:向量空间