在.net執行sql腳本的簡單實現
2024-07-10 12:59:16
供稿:網友
在.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(秋楓)