cmd执行mssql脚本或者执行mysql脚本
2013-11-21 15:12
316 查看
private static int ExecuteMSSql(DbInfo db, string sqlPath) { Console.WriteLine("================================================================="); Console.WriteLine("==========当前执行的mssql脚本:"+sqlPath); Console.WriteLine("================================================================="); if (db != null) { System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe";//要执行的程序名称 p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true;//可能接受来自调用程序的输入信息 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 p.StartInfo.CreateNoWindow = true;//不显示程序窗口 p.Start(); string Command = string.Format(@"sqlcmd -U{0} -P{1} -S{2} -d{3} -b -i {4}", db.User, db.Password, db.Server, db.Database, sqlPath); p.StandardInput.WriteLine(Command); //向CMD窗口发送输入信息: p.StandardInput.WriteLine("exit"); p.WaitForExit(); string sOutput = p.StandardOutput.ReadToEnd();//获取CMD窗口的输出信息,必须放在WaitForExit后面 Console.WriteLine(sOutput);//输出CMD执行的返回信息, int rt = p.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O p.Close(); Console.WriteLine(sOutput); if (rt == 1) { Console.WriteLine("================================================================="); Console.WriteLine("==========返回值:-9,mysql脚本执行出错,没有返回执行成功结果"); Console.WriteLine("==========mysql脚本:"+sqlPath); Console.WriteLine("================================================================="); return -9;//脚本错误 } else { return 0; } } else { Console.WriteLine("================================================================="); Console.WriteLine("==========返回值:-8,mysql数据库连接读取失败,为Null"); Console.WriteLine("================================================================="); return -8;//数据库连接读取失败 } } private static int ExecuteMySql(DbInfo db, string sqlPath) { Console.WriteLine("================================================================="); Console.WriteLine("==========当前执行的mysql脚本:"+sqlPath); Console.WriteLine("================================================================="); if (db != null) { Process myProcess = new Process(); myProcess.StartInfo = new ProcessStartInfo(); myProcess.StartInfo.UseShellExecute = false; myProcess.StartInfo.FileName = "cmd.exe"; string Command = string.Format("/c mysql.exe --host={0} -u{1} -p{2} --default-character-set=utf8 {3} -v -E < \"{4}\"", db.Server, db.User, db.Password, db.Database, sqlPath); myProcess.StartInfo.Arguments = Command; myProcess.Start(); myProcess.WaitForExit(); int rt = myProcess.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O if (rt == 1) { Console.WriteLine("================================================================="); Console.WriteLine("==========返回值:-9,mssql脚本执行出错脚本出错"); Console.WriteLine("==========mssql脚本:"+sqlPath); Console.WriteLine("================================================================="); Console.WriteLine(""); return -9;//脚本错误 } else { return 0; } } else { Console.WriteLine("================================================================="); Console.WriteLine("==========返回值:-8,mssql数据库连接读取失败,为Null"); Console.WriteLine("================================================================="); return -8;//数据库连接读取失败 } }
相关文章推荐
- MySQL-关于事务的使用
- 彻底挖掘mysqlbinlog数据内容
- 13个mysql数据库的实用SQL小技巧
- mysql
- mysql 的 find_in_set函数使用方法
- 谈谈MySql数据库锁
- Can't connect to MySQL server on
- mysql的用户管理(二)
- SSH MySql乱码解决方案
- mysql 性能分析及explain用法
- MySQL 数据类型 详解
- 加快mysql数据导出导入速度
- 有关Mysql整型数据自动递增的问题
- mac下MySQL、MysqL workbench的安装与配置配置
- MySQL高效编程--学习笔记
- 对MySQL性能影响关系紧密的五大配置参数
- MySQL忘记密码(mysql5.5 for windows xp)
- MySQL新建用户无法登录的问题
- mysql添加远程访问权限以及修改密码
- mysql多实例情况下增加shutdown命令