博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 执行SQL脚本文件
阅读量:6087 次
发布时间:2019-06-20

本文共 1169 字,大约阅读时间需要 3 分钟。

本文转载:

 

代码 
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 
== 
null
break;
            
// 跳过注释行
            
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;
}

 

你可能感兴趣的文章
Django为数据库的ORM写测试例(TestCase)
查看>>
web.xml中的contextConfigLocation在spring中的作用
查看>>
NYOJ-107 A Famous ICPC Team
查看>>
与众不同 windows phone (44) - 8.0 位置和地图
查看>>
Visual Studio Code 使用 ESLint 增强代码风格检查
查看>>
iOS设备中的推送(二):证书
查看>>
敏捷 - #3 原则:经常提供工作软件 ( #3 Agile - Principle)
查看>>
数据结构与算法:二分查找
查看>>
使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
查看>>
iOS开发-NSPredicate
查看>>
我的友情链接
查看>>
Exchange Server 2003 SP2 数据存储大小限制修改
查看>>
expr命令用法-实例讲解
查看>>
酷派8705救砖
查看>>
iOS10里的通知与推送
查看>>
# C 语言编写二进制/十六进制编辑器
查看>>
EMS SQL Management Studio for MySQL
查看>>
我的友情链接
查看>>
做母亲不容易
查看>>
详细的文档(吐槽)
查看>>