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