您的位置:首页 > 数据库

.net执行SQL脚本文件

2012-03-22 15:45 295 查看
//执行脚本文件

protected string proceedSQLScripts(string connectionString, string pathToScriptFile)

{

List<string> statements = new List<string>();

using (Stream stream = File.OpenRead(pathToScriptFile))

using (StreamReader reader = new StreamReader(stream))

{

string statement = string.Empty;

while ((statement = readNextStatementFromStream(reader)) != null)

{

statements.Add(statement);

}

}

try

{

//TODO run in transaction

foreach (string stmt in statements)

{

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

SqlCommand command = new SqlCommand(stmt, conn);

command.ExecuteNonQuery();

conn.Close();

}

}

}

catch (Exception ex)

{

return ex.Message;

}

return string.Empty;

}

protected string readNextStatementFromStream(StreamReader reader)

{

StringBuilder sb = new StringBuilder();

string lineOfText;

while (true)

{

lineOfText = reader.ReadLine();

if (lineOfText == null)

{

if (sb.Length > 0)

return sb.ToString();

else

return null;

}

if (lineOfText.TrimEnd().ToUpper() == "GO")

break;

sb.Append(lineOfText + Environment.NewLine);

}

return sb.ToString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: