关闭

使用C#执行MySQL的SQL文件

标签: sqlmysqlc#stringcommandnull
4503人阅读 评论(8) 收藏 举报
分类:

最近的一个项目,需要在初始化时建库及建表,因为建表的SQL语句是从MySQL中导出的,所以在建库之后,需要执行导出的Sql语句实现建表及插入数据。方法如下:

        /// <summary> 
        /// 执行Sql文件 
        /// </summary> 
        /// <param name="varFileName">sql文件</param> 
        /// <param name="Conn">连接字符串</param> 
        /// <returns></returns> 
        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; 
        }


0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:766853次
    • 积分:7064
    • 等级:
    • 排名:第3184名
    • 原创:53篇
    • 转载:265篇
    • 译文:2篇
    • 评论:62条
    最新评论