在.NET执行SQL脚本的简单实现

博客介绍了使用C#调用cmd来执行osql实现脚本执行的方法,还列出了osql命名的参数,如-U指定登录ID、-P指定密码等,涵盖了多种参数选项及功能。

使用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]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值