利用.net(C#)执行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语句特别注意大小写! 可用-U username 或/U username,但不能用-u username

对于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帮助文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值