C# 中直接执行sql文件
最简单的方法就是调用 osql.exe .
具体方法如下(以sql server200 数据库为例):
View Code
1 try 2 { 3 System.Diagnostics.Process pr = new System.Diagnostics.Process(); 4 pr.StartInfo.FileName = "osql.exe "; 5 pr.StartInfo.Arguments = "-U sa -P sa -d master -s 127.0.0.1 -i Sql.sql"; 6 pr.StartInfo.UseShellExecute = false; 7 pr.StartInfo.RedirectStandardOutput = true; //重定向输出 8 9 pr.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//隐藏输出窗口 10 pr.Start(); 11 12 System.IO.StreamReader sr = pr.StandardOutput; 13 Console.WriteLine(sr.ReadToEnd()); 14 15 pr.WaitForExit(); 16 pr.Close(); 17 } 18 catch(Exception err) 19 { 20 MessageBox.Show(err.ToString()); 21 }
以下是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 行为禁用下列项]

浙公网安备 33010602011771号