调用方法执行sql脚本来创建数据库

 private DataTable CreateFtpDatabase(string tablename,string dqdm,string dqmc,bool start=true)
        {
            DataTable recordinfo = null;
            try
            {
                string ftp = System.Configuration.ConfigurationManager.AppSettings["Ftp"];
                string serviceIp = System.Configuration.ConfigurationManager.AppSettings["Server"];
                string port = System.Configuration.ConfigurationManager.AppSettings["Port"];
                string username = System.Configuration.ConfigurationManager.AppSettings["UserName"];
                string password = System.Configuration.ConfigurationManager.AppSettings["Password"];
                string connstring = string.Format("Data Source='{0}';Port='{1}';Database='mysql';User Id='{2}';password='{3}';charset='utf8';pooling=true;max pool size=100;connection timeout=36000;Treat Tiny As Boolean=false;default command timeout=90000", "127.0.0.1", port, username, password);
                string sql = "SELECT * from information_schema.SCHEMATA WHERE SCHEMA_NAME='table_ftp'";
                var dt = Helpers.MySqlHelper.ExecuteDataTable(connstring, CommandType.Text, sql, null);
                if (dt.Rows.Count == 0)
                {
                    bool success = ExecuteSqlFile(@"C:\Users\Desktop\ftp.sql", connstring);
                    if (!success)
                    {
                        MessageBox.Show("创建数据库失败!");
                    }
                }
                string selectsql = "";          //查询表返回一个datatable
               


                 recordinfo = Helpers.MySqlHelper.ExecuteDataTable(connstring, CommandType.Text, selectsql, null);
            }
            catch (Exception)
            {


            }
            return recordinfo;

        }


     private bool ExecuteSqlFile(string varFileName, String Conn)
        {
            using (StreamReader reader = new StreamReader(varFileName, System.Text.Encoding.GetEncoding("utf-8")))
            {
                MySqlCommand command;
                MySqlConnection Connection = new MySqlConnection(Conn);
                Connection.Open();
                try
                {
                    string line = "";
                    string l;
                    while (true)
                    {
                        // 如果line被使用,则设为空  
                        if (line.EndsWith(";"))
                            line = "";


                        l = reader.ReadLine();


                        // 如果到了最后一行,则退出循环  
                        if (l == null) break;
                        // 去除空格  
                        l = l.TrimEnd();
                        // 如果是空行,则跳出循环  
                        if (l == "") continue;
                        // 如果是注释,则跳出循环  
                        if (l.StartsWith("--")) continue;


                        // 行数加1   
                        line += l;
                        // 如果不是完整的一条语句,则继续读取  
                        if (!line.EndsWith(";")) continue;
                        if (line.StartsWith("/*!"))
                        {
                            continue;
                        }


                        //执行当前行  
                        command = new MySqlCommand(line, Connection);
                        command.ExecuteNonQuery();
                    }
                }
                finally
                {
                    Connection.Close();
                }
            }


            return true;
        }  



sql脚本:

     CREATE DATABASE  IF NOT EXISTS `table_ftp` /*!40100 DEFAULT CHARACTER SET utf8 */;


USE `table_ftp`;
DROP TABLE IF EXISTS `issuedinfo`;


CREATE TABLE `issuedinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `packetname` varchar(255) DEFAULT NULL,
  `dqdm` varchar(255) DEFAULT NULL,
  `dqmc` varchar(255) DEFAULT NULL,
  `datetime` datetime DEFAULT NULL,
  `adress` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;




DROP TABLE IF EXISTS `reporteinfo`;


CREATE TABLE `reporteinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `packetname` varchar(255) DEFAULT NULL,
  `dqdm` varchar(255) DEFAULT NULL,
  `dqmc` varchar(255) DEFAULT NULL,
  `datetime` datetime DEFAULT NULL,
  `school` varchar(255) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、简介 1.1前言 1、由于最近工作一直用Oracle,故对Oracle数据库研究为对象。 2、根据工作业务需求实际情况进行功能研发。为什么要开发呢?因为在数据库升级或者迁移的时候,为了保证不同环境不同数据库数据保持同步,故数据库SQL脚本非常作用。比如:数据库脚本,副脚本,增量脚本。 3、 什么是主脚本、副脚本、增量脚本呢? 3.1、主脚本数据库表或存储过程,视图脚本,序列等脚本。 3.2、副脚本指必须执行脚本之后才执行脚本。换句话说在没执行主键脚本的情况下,副脚本执行之后会回滚事务失败。 3.3、增量脚本指在执行脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则需要的SQL脚本。 2、减少人工编写SQL脚本出错率问题,完全通过程序检测SQL准确性。 3、帮助开发人员提高SQL编写效率,减少人工编写SQL开发成本问题。 4、帮助开发人员节约时间,同时避免繁琐不必要编写SQL的工作。 二、实现方式与原理 2.1实现方式 1、实现方式分:正向与逆向实现。什么是正向与逆行呢【是否有鸡还是有蛋,先后道理同等】 2、正向方式:首先把设计好数据库表文档,把所有表的字段属性配置到EXCEL或者CSV格式的文件通过JXL/POI技术去读取文件的字段,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 3、逆向方式:首先有数据库表,然后通过ORM持久化技术连接数据库再读取表的字段等属性出来,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 2.2原理 对数据库软件内置核心表或视图查询出来存储用户行为表结构所有属性信息,对此属性结构信息进行分析与组装所需要SQL脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值