C# 执行SQL脚本文件

简介: 本文转载:http://www.cnblogs.com/anjou/archive/2010/08/10/1796563.html   代码  public static int ExecuteSqlScript(string sqlFile){    int returnValue =...

本文转载: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;
}

 

目录
相关文章
|
3月前
|
SQL 存储 API
Flink实践:通过Flink SQL进行SFTP文件的读写操作
虽然 Apache Flink 与 SFTP 之间的直接交互存在一定的限制,但通过一些创造性的方法和技术,我们仍然可以有效地实现对 SFTP 文件的读写操作。这既展现了 Flink 在处理复杂数据场景中的强大能力,也体现了软件工程中常见的问题解决思路——即通过现有工具和一定的间接方法来克服技术障碍。通过这种方式,Flink SQL 成为了处理各种数据源,包括 SFTP 文件,在内的强大工具。
206 15
|
2月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
516 0
|
22天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
安全 Java C#
Unreal Engine C# 脚本编写浅谈
本文介绍了在 Unreal Engine 中使用 C# 编写脚本的方法,涵盖环境搭建、基础概念、常见问题及代码案例。从安装插件到处理输入事件和加载蓝图,详细讲解了如何在 Unreal Engine 中高效利用 C# 进行开发。
45 3
|
2月前
|
SQL 数据库
DBeaver执行sql文件
本文介绍了DBeaver这款支持多种数据库的通用数据库管理工具和SQL客户端,它具备查看数据库结构、执行SQL查询和脚本、浏览和导出数据等功能。
225 1
DBeaver执行sql文件
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
2月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
376 1
|
2月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
52 1
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
35 0