CSharpC# 执行SQL脚本文件
作者:Dezai.CN / 发布于2012/7/10/ 676
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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; }
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved 站长博客 粤ICP备13059550号-3