在.net执行sql脚本的简单实现
郑佐2004-12-25
         看到csdn社区经常有人问在.net中如果执行sql脚本,下面是使用C#调用cmd来执行osql实现脚本的执行。 
using System;
using System.Data;
using System.Collections;
using System.Xml;
using System.IO;
using System.Text;
using System.Diagnostics; 
namespace ZZ
{
         public class ZZConsole
         {
                   [STAThread]
                   static void Main(string[] args)
                   {
                            string sqlQuery = "osql.exe /uSa /p123 /s192.192.132.229 /dNorthWind /i yoursql.sql";
                            string strRst = ExeCommand(sqlQuery);
                            Console.WriteLine(strRst);
                            Console.ReadLine();
                   }                  
                   public static string ExeCommand(string commandText)
                   {
                            Process p = new Process();
                            p.StartInfo.FileName = "cmd.exe";
                            p.StartInfo.UseShellExecute = false;
                            p.StartInfo.RedirectStandardInput = true;
                            p.StartInfo.RedirectStandardOutput = true;
                            p.StartInfo.RedirectStandardError = true;
                            p.StartInfo.CreateNoWindow = true;
                            string strOutput = null;
                            try
                            {
                                     p.Start();
                                     p.StandardInput.WriteLine(commandText);
                                     p.StandardInput.WriteLine("exit");
                                     strOutput = p.StandardOutput.ReadToEnd();
                                     p.WaitForExit();
                                     p.Close();
                            }
                            catch(Exception e)
                            {
                                     strOutput = e.Message;
                            }
                            return strOutput;
                   }
         }
} 
对于osql命名的参数如下:
===================== 
用法: osql              [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w columnwidth]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-L list servers]      [-c cmdend]            [-D ODBC DSN name]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-n remove numbering]  [-m errorlevel]
  [-r msgs to stderr]    [-V severitylevel]
  [-i inputfile]         [-o outputfile]
  [-p print statistics]  [-b On error batch abort]
  [-X[1] disable commands [and exit with warning]]
  [-O use Old ISQL behavior disables the following]
  [-? show syntax summary]
具体参考  
http://www.588188.com/netbook/sqlserver2000/coprompt/cp_osql_1wxl.htm
或者sql server 2000帮助文档 
上面程序是我以前在csdn回答问题时写的,由于最近比较忙,所以偷懒了。对于本文有什么好的建议或意见请留言。Zhzuo(秋枫)