C# 执行sql文件
2012-05-11 12:28:57| 分类: App Develop|举报|字号 订阅
/// <summary>
/// 执行sql文件
/// </summary>
void StartupSQLFile()
{
/*
以下是osql的一些参数用法:
用法: osql
[-U 登录 ID]
[-P 密码]
[-S 服务器]
[-H 主机名]
[-E 可信连接]
[-d 使用数据库名称]
[-l 登录超时值] [-t 查询超时值]
[-h 标题]
[-s 列分隔符]
[-w 列宽]
[-a 数据包大小]
[-e 回显输入] [-I
允许带引号的标识符]
[-L 列出服务器]
[-c 命令结束] [-D ODBC DSN
名称]
[-q "命令行查询"]
[-Q "命令行查询" 并退出]
[-n 删除编号方式]
[-m 错误级别]
[-r 发送到 stderr 的消息]
[-V 严重级别]
[-i 输入文件]
[-o 输出文件]
[-p 打印统计信息]
[-b 出错时中止批处理]
[-X[1]
禁用命令,[退出的同时显示警告]]
[-O 使用旧 ISQL
行为禁用下列项]
*/
try
{
System.Diagnostics.Process pr = new System.Diagnostics.Process();
pr.StartInfo.FileName = "osql.exe ";
pr.StartInfo.Arguments = "-U sa -P sa -d master -s 127.0.0.1 -i Sql.sql";
pr.StartInfo.UseShellExecute = false;
pr.StartInfo.RedirectStandardOutput = true; //重定向输出
pr.StartInfo.WindowStyle =
System.Diagnostics.ProcessWindowStyle.Hidden;//隐藏输出窗口
pr.Start();
System.IO.StreamReader sr = pr.StandardOutput;
//执行结果,包含中文执行失败
string result =
sr.ReadToEnd();
pr.WaitForExit();
pr.Close();
}
catch (Exception err)
{
MessageBox.Show(err.ToString());
}
}