zoukankan      html  css  js  c++  java
  • C# 执行SQL脚本文件

    本文转载:http://www.cnblogs.com/anjou/archive/2010/08/10/1796563.html

    代码 
    public static int ExecuteSqlScript(string sqlFile)
    {
        int returnValue = -1;
        int sqlCount = 0, errorCount = 0;
        if (!File.Exists(sqlFile))
        {
            Log.WriteLog(string.Format("sql file not exists!", sqlFile));
            return -1;
        }
        using (StreamReader sr = new StreamReader(sqlFile))
        {
            string line = string.Empty;
            char spaceChar = ' ';
            string newLIne = "\r\n", semicolon = ";";
            string sprit = "/", whiffletree = "-";               
            string sql = string.Empty;
            do
            {
                line = sr.ReadLine();
                // 文件结束
                if (line == nullbreak;
                // 跳过注释行
                if (line.StartsWith(sprit) || line.StartsWith(whiffletree)) continue;
                // 去除右边空格
                line = line.TrimEnd(spaceChar);
                sql += line;
                // 以分号(;)结尾,则执行SQL
                if (sql.EndsWith(semicolon))
                {
                    try
                    {
                        sqlCount++;
                        SqlHelper.ExecuteNonQuery(sql, null);
                    }
                    catch (Exception ex)
                    {
                        errorCount++;
                        Log.WriteLog(sql +  newLIne + ex.Message);  
                    }                        
                    sql = string.Empty;
                }
                else
                {
                    // 添加换行符
                    if(sql.Length > 0) sql += newLIne;
                }
            } while (true);
        }
        if (sqlCount > 0 && errorCount == 0)
            returnValue = 1;
        if (sqlCount == 0 && errorCount == 0)
            returnValue = 0;
        else if (sqlCount > errorCount && errorCount > 0)
            returnValue = -1;
        else if (sqlCount == errorCount)
            returnValue = -2;
        return returnValue;
    }
  • 相关阅读:
    已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
    简易vector的实现
    简单的内存池实现
    归并排序,递归与非递归
    堆排序
    位运算
    二叉树的建立,以及非递归遍历
    “云端融合”思想的自我摸索(很不靠谱)
    linux android开发环境搭建
    Android系统架构及内核简介
  • 原文地址:https://www.cnblogs.com/51net/p/2537950.html
Copyright © 2011-2022 走看看