.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();
}
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();
}
相关文章推荐
- MySQL执行外部sql脚本文件的命令
- 批量执行sql脚本文件
- java 读取文件 和 执行SQL脚本 (支持中文)
- 利用.net(C#)执行sql脚本的简单实现
- 运用ANT地SQL Task来完成自己地Java执行SQL脚本文件地功能
- Windows下MySQL批量执行SQL脚本文件
- 存储过程使用shell脚本执行sql文件
- MySQL执行外部sql脚本文件的命令
- mysql 执行sql脚本文件
- Java中获取Log4j日志文件,Mybatis 的ScriptRunner执行带pl/sql的 代码块脚本
- java程序执行SQL脚本文件
- 如何执行一个mysql的sql脚本文件
- MySql下如何执行sql脚本文件
- C#执行SQL脚本文件
- 如何在VS里的部署中执行一段 .sql 的脚本文件?
- 如何执行一个mysql的sql脚本文件
- 给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考
- MS SQL SERVER执行大脚本文件时,提示“内存不足”的解决办法
- C# 调用并执行SQL脚本文件
- sqlplus执行脚本,并把结果输出到文件