1 private static int ExecuteMSSql(DbInfo db,
string sqlPath)
2 {
3 Console.WriteLine(
"=================================================================");
4 Console.WriteLine(
"==========当前执行的mssql脚本:"+
sqlPath);
5 Console.WriteLine(
"=================================================================");
6 if (db !=
null)
7 {
8 System.Diagnostics.Process p =
new System.Diagnostics.Process();
9 p.StartInfo.FileName =
"cmd.exe";
//要执行的程序名称
10 p.StartInfo.UseShellExecute =
false;
11 p.StartInfo.RedirectStandardInput =
true;
//可能接受来自调用程序的输入信息
12 p.StartInfo.RedirectStandardOutput =
true;
//由调用程序获取输出信息
13 p.StartInfo.CreateNoWindow =
true;
//不显示程序窗口
14 p.Start();
15 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);
16 p.StandardInput.WriteLine(Command);
//向CMD窗口发送输入信息:
17 p.StandardInput.WriteLine(
"exit");
18 p.WaitForExit();
19 string sOutput = p.StandardOutput.ReadToEnd();
//获取CMD窗口的输出信息,必须放在WaitForExit后面
20 Console.WriteLine(sOutput);
//输出CMD执行的返回信息,
21 int rt = p.ExitCode;
//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
22 p.Close();
23 Console.WriteLine(sOutput);
24 if (rt ==
1)
25 {
26 Console.WriteLine(
"=================================================================");
27 Console.WriteLine(
"==========返回值:-9,mysql脚本执行出错,没有返回执行成功结果");
28 Console.WriteLine(
"==========mysql脚本:"+
sqlPath);
29 Console.WriteLine(
"=================================================================");
30 return -
9;
//脚本错误
31 }
32 else
33 {
return 0; }
34 }
35 else
36 {
37 Console.WriteLine(
"=================================================================");
38 Console.WriteLine(
"==========返回值:-8,mysql数据库连接读取失败,为Null");
39 Console.WriteLine(
"=================================================================");
40 return -
8;
//数据库连接读取失败
41 }
42
43 }
44
45 private static int ExecuteMySql(DbInfo db,
string sqlPath)
46 {
47 Console.WriteLine(
"=================================================================");
48 Console.WriteLine(
"==========当前执行的mysql脚本:"+
sqlPath);
49 Console.WriteLine(
"=================================================================");
50 if (db !=
null)
51 {
69 Process myProcess =
new Process();
70 myProcess.StartInfo =
new ProcessStartInfo();
72 myProcess.StartInfo.UseShellExecute =
false;
73 myProcess.StartInfo.FileName =
"cmd.exe";
74 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);
75 myProcess.StartInfo.Arguments =
Command;
76 myProcess.Start();
77 myProcess.WaitForExit();
78 int rt = myProcess.ExitCode;
//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
79 if (rt ==
1)
80 {
81 Console.WriteLine(
"=================================================================");
82 Console.WriteLine(
"==========返回值:-9,mssql脚本执行出错脚本出错");
83 Console.WriteLine(
"==========mssql脚本:"+
sqlPath);
84 Console.WriteLine(
"=================================================================");
85 Console.WriteLine(
"");
86 return -
9;
//脚本错误
87 }
88 else
89 {
return 0; }
90 }
91 else
92 {
93 Console.WriteLine(
"=================================================================");
94 Console.WriteLine(
"==========返回值:-8,mssql数据库连接读取失败,为Null");
95 Console.WriteLine(
"=================================================================");
96 return -
8;
//数据库连接读取失败
97 }
98 }
转载于:https://www.cnblogs.com/_fyz/p/3435628.html
相关资源:数据结构—成绩单生成器