当前位置:Gxlcms > 数据库问题 > .net(C#)在Access数据库中执行sql脚本

.net(C#)在Access数据库中执行sql脚本

时间:2021-07-01 10:21:17 帮助过:12人阅读

/// <summary> 2 /// 执行sql语句 3 /// </summary> 4 /// <param name="sql">需要执行的sql语句</param> 5 public bool ExecuteSql(string sql, ref string errorMsg) 6 { 7 SetConnOpen(); 8 string[] sqls = serializeSql(sql); 9 OleDbTransaction tran = conn.BeginTransaction(); 10 try 11 { 12 comm = new OleDbCommand(); 13 comm.Transaction = tran; 14 comm.Connection = conn; 15 foreach (string s in sqls) 16 { 17 var temps = s.Trim().Replace("\r\n", ""); 18 if (!string.IsNullOrEmpty(temps)) 19 { 20 comm.CommandText = temps; 21 comm.ExecuteNonQuery(); 22 } 23 } 24 tran.Commit(); 25 return true; 26 } 27 catch(Exception ex) 28 { 29 tran.Rollback(); 30 errorMsg = ex.Message; 31 return false; 32 } 33 finally 34 { 35 conn.Close(); 36 } 37 } 执行包含sql语句的字符串 技术分享
  1. <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  2. <span style="color: #808080">///</span><span style="color: #008000"> 从sql脚本文件执行
  3. </span><span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  4. <span style="color: #808080">///</span> <span style="color: #808080"><param name="sqlFilePath"></span><span style="color: #008000">sql脚本文件的路径</span><span style="color: #808080"></param></span>
  5. <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  6. <span style="color: #0000ff">public</span> <span style="color: #0000ff">bool</span> ExecuteSqlByFile(<span style="color: #0000ff">string</span> sqlFilePath,<span style="color: #0000ff">ref</span> <span style="color: #0000ff">string</span><span style="color: #000000"> errorMsg)
  7. {
  8. </span><span style="color: #0000ff">if</span>(!<span style="color: #000000">File.Exists(sqlFilePath))
  9. {
  10. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> FileNotFoundException(<span style="color: #800000">"</span><span style="color: #800000">未找到该sql脚本,请检查路径是否错误</span><span style="color: #800000">"</span><span style="color: #000000">);
  11. }
  12. </span><span style="color: #0000ff">string</span> sourceSql = <span style="color: #0000ff">new</span><span style="color: #000000"> StreamReader(sqlFilePath).ReadToEnd();
  13. </span><span style="color: #0000ff">string</span>[] sqls =<span style="color: #000000"> serializeSql(sourceSql);
  14. SetConnOpen();
  15. OleDbTransaction tran </span>=<span style="color: #000000"> conn.BeginTransaction();
  16. </span><span style="color: #0000ff">try</span><span style="color: #000000">
  17. {
  18. comm </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> OleDbCommand();
  19. comm.Transaction </span>=<span style="color: #000000"> tran;
  20. comm.Connection </span>=<span style="color: #000000"> conn;
  21. </span><span style="color: #0000ff">foreach</span> (<span style="color: #0000ff">string</span> s <span style="color: #0000ff">in</span><span style="color: #000000"> sqls)
  22. {
  23. </span><span style="color: #0000ff">var</span> temps = s.Trim().Replace(<span style="color: #800000">"</span><span style="color: #800000">\r\n</span><span style="color: #800000">"</span>, <span style="color: #800000">""</span><span style="color: #000000">);
  24. </span><span style="color: #0000ff">if</span> (!<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(temps))
  25. {
  26. comm.CommandText </span>=<span style="color: #000000"> temps;
  27. comm.ExecuteNonQuery();
  28. }
  29. }
  30. tran.Commit();
  31. </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  32. }
  33. </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception ex)
  34. {
  35. tran.Rollback();
  36. errorMsg </span>=<span style="color: #000000"> ex.Message;
  37. </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span><span style="color: #000000">;
  38. }
  39. </span><span style="color: #0000ff">finally</span><span style="color: #000000">
  40. {
  41. conn.Close();
  42. }
  43. }
  44. </span><span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  45. <span style="color: #808080">///</span><span style="color: #008000"> 将sql脚本进行序列化
  46. </span><span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  47. <span style="color: #808080">///</span> <span style="color: #808080"><param name="sql"></span><span style="color: #008000">sql脚本</span><span style="color: #808080"></param></span>
  48. <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  49. <span style="color: #0000ff">private</span> <span style="color: #0000ff">string</span>[] serializeSql(<span style="color: #0000ff">string</span><span style="color: #000000"> sql)
  50. {
  51. </span><span style="color: #0000ff">string</span>[] ss = sql.Split(<span style="color: #0000ff">new</span> <span style="color: #0000ff">string</span>[<span style="color: #800080">1</span>] { <span style="color: #800000">"</span><span style="color: #800000">/*go*/</span><span style="color: #800000">"</span><span style="color: #000000"> }, StringSplitOptions.RemoveEmptyEntries);
  52. </span><span style="color: #0000ff">return</span><span style="color: #000000"> ss;
  53. }</span>
执行包含sql语句的文件

 其实思路比较简单,就是将sql语句用字符串进行分割,然后将一条条sql语句组合成一个数组,依次进行执行即可。在执行过程中使用事务处理,当错误发生时,能够进行回滚操作。下面是完整代码:

AccessUtils.cs

技术分享
  1. <span style="color: #008080"> 1</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System;
  2. </span><span style="color: #008080"> 2</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
  3. </span><span style="color: #008080"> 3</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Linq;
  4. </span><span style="color: #008080"> 4</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Text;
  5. </span><span style="color: #008080"> 5</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Configuration;
  6. </span><span style="color: #008080"> 6</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Data.OleDb;
  7. </span><span style="color: #008080"> 7</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Data.OleDb;
  8. </span><span style="color: #008080"> 8</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.IO;
  9. </span><span style="color: #008080"> 9</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Data;
  10. </span><span style="color: #008080"> 10</span>
  11. <span style="color: #008080"> 11</span> <span style="color: #0000ff">namespace</span><span style="color: #000000"> AccessRuntime.Bin
  12. </span><span style="color: #008080"> 12</span> <span style="color: #000000">{
  13. </span><span style="color: #008080"> 13</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  14. <span style="color: #008080"> 14</span> <span style="color: #808080">///</span><span style="color: #008000"> Access工具类
  15. </span><span style="color: #008080"> 15</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  16. <span style="color: #008080"> 16</span> <span style="color: #0000ff">internal</span> <span style="color: #0000ff">sealed</span> <span style="color: #0000ff">class</span><span style="color: #000000"> AccessUtils
  17. </span><span style="color: #008080"> 17</span> <span style="color: #000000"> {
  18. </span><span style="color: #008080"> 18</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  19. <span style="color: #008080"> 19</span> <span style="color: #808080">///</span><span style="color: #008000"> access数据库连接字符串
  20. </span><span style="color: #008080"> 20</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  21. <span style="color: #008080"> 21</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">string</span> accessConnectionString = <span style="color: #0000ff">string</span><span style="color: #000000">.Empty;
  22. </span><span style="color: #008080"> 22</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  23. <span style="color: #008080"> 23</span> <span style="color: #808080">///</span><span style="color: #008000"> access数据库连接对象
  24. </span><span style="color: #008080"> 24</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  25. <span style="color: #008080"> 25</span> <span style="color: #0000ff">private</span><span style="color: #000000"> OleDbConnection conn;
  26. </span><span style="color: #008080"> 26</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  27. <span style="color: #008080"> 27</span> <span style="color: #808080">///</span><span style="color: #008000"> access数据库命令对象
  28. </span><span style="color: #008080"> 28</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  29. <span style="color: #008080"> 29</span> <span style="color: #0000ff">private</span><span style="color: #000000"> OleDbCommand comm;
  30. </span><span style="color: #008080"> 30</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  31. <span style="color: #008080"> 31</span> <span style="color: #808080">///</span><span style="color: #008000"> access数据库连接字符串
  32. </span><span style="color: #008080"> 32</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  33. <span style="color: #008080"> 33</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span><span style="color: #000000"> AccessConnectionString
  34. </span><span style="color: #008080"> 34</span> <span style="color: #000000"> {
  35. </span><span style="color: #008080"> 35</span> <span style="color: #0000ff">get</span><span style="color: #000000"> {
  36. </span><span style="color: #008080"> 36</span> <span style="color: #0000ff">if</span> (!<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(accessConnectionString))
  37. </span><span style="color: #008080"> 37</span> <span style="color: #0000ff">return</span><span style="color: #000000"> accessConnectionString;
  38. </span><span style="color: #008080"> 38</span> <span style="color: #0000ff">else</span>
  39. <span style="color: #008080"> 39</span> <span style="color: #000000"> {
  40. </span><span style="color: #008080"> 40</span> <span style="color: #0000ff">string</span> connstr = ConfigurationManager.ConnectionStrings[<span style="color: #800000">"</span><span style="color: #800000">AccessRuntimeConnectionString</span><span style="color: #800000">"</span><span style="color: #000000">].ConnectionString;
  41. </span><span style="color: #008080"> 41</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(connstr))
  42. </span><span style="color: #008080"> 42</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> ConnectionStringElementNotFindException(<span style="color: #800000">"</span><span style="color: #800000">未找到或未设置AccessRuntimeConnectionString节点</span><span style="color: #800000">"</span><span style="color: #000000">);
  43. </span><span style="color: #008080"> 43</span> <span style="color: #0000ff">else</span>
  44. <span style="color: #008080"> 44</span> <span style="color: #0000ff">return</span><span style="color: #000000"> connstr;
  45. </span><span style="color: #008080"> 45</span> <span style="color: #000000"> }
  46. </span><span style="color: #008080"> 46</span> <span style="color: #000000"> }
  47. </span><span style="color: #008080"> 47</span> <span style="color: #000000"> }
  48. </span><span style="color: #008080"> 48</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  49. <span style="color: #008080"> 49</span> <span style="color: #808080">///</span><span style="color: #008000"> 初始化连接(有密码)
  50. </span><span style="color: #008080"> 50</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  51. <span style="color: #008080"> 51</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="filepath"></span><span style="color: #008000">可以为空,为空则调用配置文件</span><span style="color: #808080"></param></span>
  52. <span style="color: #008080"> 52</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="pwd"></span><span style="color: #008000">数据库密码</span><span style="color: #808080"></param></span>
  53. <span style="color: #008080"> 53</span> <span style="color: #808080">///</span> <span style="color: #808080"><example></span>
  54. <span style="color: #008080"> 54</span> <span style="color: #808080">///</span><span style="color: #008000"> public AccessUtils("123",null)
  55. </span><span style="color: #008080"> 55</span> <span style="color: #808080">///</span> <span style="color: #808080"></example></span>
  56. <span style="color: #008080"> 56</span> <span style="color: #0000ff">public</span> AccessUtils(<span style="color: #0000ff">string</span> pwd,<span style="color: #0000ff">string</span><span style="color: #000000"> filepath)
  57. </span><span style="color: #008080"> 57</span> <span style="color: #000000"> {
  58. </span><span style="color: #008080"> 58</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(filepath))
  59. </span><span style="color: #008080"> 59</span> <span style="color: #000000"> {
  60. </span><span style="color: #008080"> 60</span> filepath =<span style="color: #000000"> AccessConnectionString;
  61. </span><span style="color: #008080"> 61</span> <span style="color: #000000"> }
  62. </span><span style="color: #008080"> 62</span> <span style="color: #0000ff">this</span>.conn = <span style="color: #0000ff">new</span> OleDbConnection(filepath + <span style="color: #800000">"</span><span style="color: #800000">; Jet OLEDB:Database Password=</span><span style="color: #800000">"</span> +<span style="color: #000000"> pwd);
  63. </span><span style="color: #008080"> 63</span> <span style="color: #000000"> conn.Open();
  64. </span><span style="color: #008080"> 64</span> <span style="color: #000000"> }
  65. </span><span style="color: #008080"> 65</span>
  66. <span style="color: #008080"> 66</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  67. <span style="color: #008080"> 67</span> <span style="color: #808080">///</span><span style="color: #008000"> 初始化连接(无密码)
  68. </span><span style="color: #008080"> 68</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  69. <span style="color: #008080"> 69</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="filepath"></param></span>
  70. <span style="color: #008080"> 70</span> <span style="color: #808080">///</span> <span style="color: #808080"><example></span>
  71. <span style="color: #008080"> 71</span> <span style="color: #808080">///</span><span style="color: #008000"> 1.public AccessUtils(filepath)
  72. </span><span style="color: #008080"> 72</span> <span style="color: #808080">///</span><span style="color: #008000"> 2.public AccessUtils()//不传递参数则调用配置文件
  73. </span><span style="color: #008080"> 73</span> <span style="color: #808080">///</span> <span style="color: #808080"></example></span>
  74. <span style="color: #008080"> 74</span> <span style="color: #0000ff">public</span> AccessUtils(<span style="color: #0000ff">string</span> filepath = <span style="color: #0000ff">null</span><span style="color: #000000">)
  75. </span><span style="color: #008080"> 75</span> <span style="color: #000000"> {
  76. </span><span style="color: #008080"> 76</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(filepath))
  77. </span><span style="color: #008080"> 77</span> <span style="color: #000000"> {
  78. </span><span style="color: #008080"> 78</span> filepath =<span style="color: #000000"> AccessConnectionString;
  79. </span><span style="color: #008080"> 79</span> <span style="color: #000000"> }
  80. </span><span style="color: #008080"> 80</span> <span style="color: #0000ff">this</span>.conn = <span style="color: #0000ff">new</span><span style="color: #000000"> OleDbConnection(filepath);
  81. </span><span style="color: #008080"> 81</span> <span style="color: #000000"> conn.Open();
  82. </span><span style="color: #008080"> 82</span> <span style="color: #000000"> }
  83. </span><span style="color: #008080"> 83</span>
  84. <span style="color: #008080"> 84</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  85. <span style="color: #008080"> 85</span> <span style="color: #808080">///</span><span style="color: #008000"> 执行sql语句
  86. </span><span style="color: #008080"> 86</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  87. <span style="color: #008080"> 87</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sql"></span><span style="color: #008000">需要执行的sql语句</span><span style="color: #808080"></param></span>
  88. <span style="color: #008080"> 88</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">bool</span> ExecuteSql(<span style="color: #0000ff">string</span> sql, <span style="color: #0000ff">ref</span> <span style="color: #0000ff">string</span><span style="color: #000000"> errorMsg)
  89. </span><span style="color: #008080"> 89</span> <span style="color: #000000"> {
  90. </span><span style="color: #008080"> 90</span> <span style="color: #000000"> SetConnOpen();
  91. </span><span style="color: #008080"> 91</span> <span style="color: #0000ff">string</span>[] sqls =<span style="color: #000000"> serializeSql(sql);
  92. </span><span style="color: #008080"> 92</span> OleDbTransaction tran =<span style="color: #000000"> conn.BeginTransaction();
  93. </span><span style="color: #008080"> 93</span> <span style="color: #0000ff">try</span>
  94. <span style="color: #008080"> 94</span> <span style="color: #000000"> {
  95. </span><span style="color: #008080"> 95</span> comm = <span style="color: #0000ff">new</span><span style="color: #000000"> OleDbCommand();
  96. </span><span style="color: #008080"> 96</span> comm.Transaction =<span style="color: #000000"> tran;
  97. </span><span style="color: #008080"> 97</span> comm.Connection =<span style="color: #000000"> conn;
  98. </span><span style="color: #008080"> 98</span> <span style="color: #0000ff">foreach</span> (<span style="color: #0000ff">string</span> s <span style="color: #0000ff">in</span><span style="color: #000000"> sqls)
  99. </span><span style="color: #008080"> 99</span> <span style="color: #000000"> {
  100. </span><span style="color: #008080">100</span> <span style="color: #0000ff">var</span> temps = s.Trim().Replace(<span style="color: #800000">"</span><span style="color: #800000">\r\n</span><span style="color: #800000">"</span>, <span style="color: #800000">""</span><span style="color: #000000">);
  101. </span><span style="color: #008080">101</span> <span style="color: #0000ff">if</span> (!<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(temps))
  102. </span><span style="color: #008080">102</span> <span style="color: #000000"> {
  103. </span><span style="color: #008080">103</span> comm.CommandText =<span style="color: #000000"> temps;
  104. </span><span style="color: #008080">104</span> <span style="color: #000000"> comm.ExecuteNonQuery();
  105. </span><span style="color: #008080">105</span> <span style="color: #000000"> }
  106. </span><span style="color: #008080">106</span> <span style="color: #000000"> }
  107. </span><span style="color: #008080">107</span> <span style="color: #000000"> tran.Commit();
  108. </span><span style="color: #008080">108</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  109. </span><span style="color: #008080">109</span> <span style="color: #000000"> }
  110. </span><span style="color: #008080">110</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(Exception ex)
  111. </span><span style="color: #008080">111</span> <span style="color: #000000"> {
  112. </span><span style="color: #008080">112</span> <span style="color: #000000"> tran.Rollback();
  113. </span><span style="color: #008080">113</span> errorMsg =<span style="color: #000000"> ex.Message;
  114. </span><span style="color: #008080">114</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span><span style="color: #000000">;
  115. </span><span style="color: #008080">115</span> <span style="color: #000000"> }
  116. </span><span style="color: #008080">116</span> <span style="color: #0000ff">finally</span>
  117. <span style="color: #008080">117</span> <span style="color: #000000"> {
  118. </span><span style="color: #008080">118</span> <span style="color: #000000"> conn.Close();
  119. </span><span style="color: #008080">119</span> <span style="color: #000000"> }
  120. </span><span style="color: #008080">120</span> <span style="color: #000000"> }
  121. </span><span style="color: #008080">121</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  122. <span style="color: #008080">122</span> <span style="color: #808080">///</span><span style="color: #008000"> 从sql脚本文件执行
  123. </span><span style="color: #008080">123</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  124. <span style="color: #008080">124</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sqlFilePath"></span><span style="color: #008000">sql脚本文件的路径</span><span style="color: #808080"></param></span>
  125. <span style="color: #008080">125</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  126. <span style="color: #008080">126</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">bool</span> ExecuteSqlByFile(<span style="color: #0000ff">string</span> sqlFilePath,<span style="color: #0000ff">ref</span> <span style="color: #0000ff">string</span><span style="color: #000000"> errorMsg)
  127. </span><span style="color: #008080">127</span> <span style="color: #000000"> {
  128. </span><span style="color: #008080">128</span> <span style="color: #0000ff">if</span>(!<span style="color: #000000">File.Exists(sqlFilePath))
  129. </span><span style="color: #008080">129</span> <span style="color: #000000"> {
  130. </span><span style="color: #008080">130</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> FileNotFoundException(<span style="color: #800000">"</span><span style="color: #800000">未找到该sql脚本,请检查路径是否错误</span><span style="color: #800000">"</span><span style="color: #000000">);
  131. </span><span style="color: #008080">131</span> <span style="color: #000000"> }
  132. </span><span style="color: #008080">132</span>
  133. <span style="color: #008080">133</span> <span style="color: #0000ff">string</span> sourceSql = <span style="color: #0000ff">new</span><span style="color: #000000"> StreamReader(sqlFilePath).ReadToEnd();
  134. </span><span style="color: #008080">134</span> <span style="color: #0000ff">string</span>[] sqls =<span style="color: #000000"> serializeSql(sourceSql);
  135. </span><span style="color: #008080">135</span> <span style="color: #000000"> SetConnOpen();
  136. </span><span style="color: #008080">136</span> OleDbTransaction tran =<span style="color: #000000"> conn.BeginTransaction();
  137. </span><span style="color: #008080">137</span> <span style="color: #0000ff">try</span>
  138. <span style="color: #008080">138</span> <span style="color: #000000"> {
  139. </span><span style="color: #008080">139</span> comm = <span style="color: #0000ff">new</span><span style="color: #000000"> OleDbCommand();
  140. </span><span style="color: #008080">140</span> comm.Transaction =<span style="color: #000000"> tran;
  141. </span><span style="color: #008080">141</span> comm.Connection =<span style="color: #000000"> conn;
  142. </span><span style="color: #008080">142</span> <span style="color: #0000ff">foreach</span> (<span style="color: #0000ff">string</span> s <span style="color: #0000ff">in</span><span style="color: #000000"> sqls)
  143. </span><span style="color: #008080">143</span> <span style="color: #000000"> {
  144. </span><span style="color: #008080">144</span> <span style="color: #0000ff">var</span> temps = s.Trim().Replace(<span style="color: #800000">"</span><span style="color: #800000">\r\n</span><span style="color: #800000">"</span>, <span style="color: #800000">""</span><span style="color: #000000">);
  145. </span><span style="color: #008080">145</span> <span style="color: #0000ff">if</span> (!<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(temps))
  146. </span><span style="color: #008080">146</span> <span style="color: #000000"> {
  147. </span><span style="color: #008080">147</span> comm.CommandText =<span style="color: #000000"> temps;
  148. </span><span style="color: #008080">148</span> <span style="color: #000000"> comm.ExecuteNonQuery();
  149. </span><span style="color: #008080">149</span> <span style="color: #000000"> }
  150. </span><span style="color: #008080">150</span> <span style="color: #000000"> }
  151. </span><span style="color: #008080">151</span> <span style="color: #000000"> tran.Commit();
  152. </span><span style="color: #008080">152</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  153. </span><span style="color: #008080">153</span> <span style="color: #000000"> }
  154. </span><span style="color: #008080">154</span> <span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception ex)
  155. </span><span style="color: #008080">155</span> <span style="color: #000000"> {
  156. </span><span style="color: #008080">156</span> <span style="color: #000000"> tran.Rollback();
  157. </span><span style="color: #008080">157</span> errorMsg =<span style="color: #000000"> ex.Message;
  158. </span><span style="color: #008080">158</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span><span style="color: #000000">;
  159. </span><span style="color: #008080">159</span> <span style="color: #000000"> }
  160. </span><span style="color: #008080">160</span> <span style="color: #0000ff">finally</span>
  161. <span style="color: #008080">161</span> <span style="color: #000000"> {
  162. </span><span style="color: #008080">162</span> <span style="color: #000000"> conn.Close();
  163. </span><span style="color: #008080">163</span> <span style="color: #000000"> }
  164. </span><span style="color: #008080">164</span> <span style="color: #000000"> }
  165. </span><span style="color: #008080">165</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  166. <span style="color: #008080">166</span> <span style="color: #808080">///</span><span style="color: #008000"> 将sql脚本进行序列化
  167. </span><span style="color: #008080">167</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  168. <span style="color: #008080">168</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sql"></span><span style="color: #008000">sql脚本</span><span style="color: #808080"></param></span>
  169. <span style="color: #008080">169</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  170. <span style="color: #008080">170</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">string</span>[] serializeSql(<span style="color: #0000ff">string</span><span style="color: #000000"> sql)
  171. </span><span style="color: #008080">171</span> <span style="color: #000000"> {
  172. </span><span style="color: #008080">172</span> <span style="color: #0000ff">string</span>[] ss = sql.Split(<span style="color: #0000ff">new</span> <span style="color: #0000ff">string</span>[<span style="color: #800080">1</span>] { <span style="color: #800000">"</span><span style="color: #800000">/*go*/</span><span style="color: #800000">"</span><span style="color: #000000"> }, StringSplitOptions.RemoveEmptyEntries);
  173. </span><span style="color: #008080">173</span> <span style="color: #0000ff">return</span><span style="color: #000000"> ss;
  174. </span><span style="color: #008080">174</span> <span style="color: #000000"> }
  175. </span><span style="color: #008080">175</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  176. <span style="color: #008080">176</span> <span style="color: #808080">///</span><span style="color: #008000"> 获取打开的连接
  177. </span><span style="color: #008080">177</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  178. <span style="color: #008080">178</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">void</span><span style="color: #000000"> SetConnOpen()
  179. </span><span style="color: #008080">179</span> <span style="color: #000000"> {
  180. </span><span style="color: #008080">180</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">this</span>.conn.State !=<span style="color: #000000"> ConnectionState.Open)
  181. </span><span style="color: #008080">181</span> <span style="color: #000000"> {
  182. </span><span style="color: #008080">182</span> <span style="color: #0000ff">this</span><span style="color: #000000">.conn.Open();
  183. </span><span style="color: #008080">183</span> <span style="color: #000000"> }
  184. </span><span style="color: #008080">184</span> <span style="color: #000000"> }
  185. </span><span style="color: #008080">185</span> <span style="color: #000000"> }
  186. </span><span style="color: #008080">186</span> }
AccessUtils.cs

AccessTool.cs 这个是对AccessUtils类的封装,提供了更加友好的方法。

技术分享
  1. <span style="color: #008080"> 1</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System;
  2. </span><span style="color: #008080"> 2</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
  3. </span><span style="color: #008080"> 3</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Linq;
  4. </span><span style="color: #008080"> 4</span> <span style="color: #0000ff">using</span><span style="color: #000000"> System.Text;
  5. </span><span style="color: #008080"> 5</span>
  6. <span style="color: #008080"> 6</span> <span style="color: #0000ff">namespace</span><span style="color: #000000"> AccessRuntime.Bin
  7. </span><span style="color: #008080"> 7</span> <span style="color: #000000">{
  8. </span><span style="color: #008080"> 8</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  9. <span style="color: #008080"> 9</span> <span style="color: #808080">///</span><span style="color: #008000"> Access工具
  10. </span><span style="color: #008080"> 10</span> <span style="color: #808080">///</span><span style="color: #008000"> 注意:语句之间使用 /*go*/ 进行分割
  11. </span><span style="color: #008080"> 11</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  12. <span style="color: #008080"> 12</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">class</span><span style="color: #000000"> AccessTool
  13. </span><span style="color: #008080"> 13</span> <span style="color: #000000"> {
  14. </span><span style="color: #008080"> 14</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  15. <span style="color: #008080"> 15</span> <span style="color: #808080">///</span><span style="color: #008000"> 在Access数据库中执行sql语句
  16. </span><span style="color: #008080"> 16</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  17. <span style="color: #008080"> 17</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sql"></span><span style="color: #008000">sql脚本</span><span style="color: #808080"></param></span>
  18. <span style="color: #008080"> 18</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="pwd"></span><span style="color: #008000">数据库密码(如果无密码则不填写此参数)</span><span style="color: #808080"></param></span>
  19. <span style="color: #008080"> 19</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></span><span style="color: #008000">执行结果</span><span style="color: #808080"></returns></span>
  20. <span style="color: #008080"> 20</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">bool</span> ExecuteSql(<span style="color: #0000ff">string</span> sql,<span style="color: #0000ff">string</span> pwd = <span style="color: #0000ff">null</span><span style="color: #000000">)
  21. </span><span style="color: #008080"> 21</span> <span style="color: #000000"> {
  22. </span><span style="color: #008080"> 22</span> AccessUtils au = <span style="color: #0000ff">null</span><span style="color: #000000">;
  23. </span><span style="color: #008080"> 23</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(pwd)) {
  24. </span><span style="color: #008080"> 24</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils();
  25. </span><span style="color: #008080"> 25</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  26. </span><span style="color: #008080"> 26</span> <span style="color: #0000ff">if</span>(au.ExecuteSql(sql, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  27. </span><span style="color: #008080"> 27</span> <span style="color: #000000"> {
  28. </span><span style="color: #008080"> 28</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  29. </span><span style="color: #008080"> 29</span> <span style="color: #000000"> }
  30. </span><span style="color: #008080"> 30</span> <span style="color: #0000ff">else</span>
  31. <span style="color: #008080"> 31</span> <span style="color: #000000"> {
  32. </span><span style="color: #008080"> 32</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  33. </span><span style="color: #008080"> 33</span> <span style="color: #000000"> }
  34. </span><span style="color: #008080"> 34</span> <span style="color: #000000"> }
  35. </span><span style="color: #008080"> 35</span> <span style="color: #0000ff">else</span>
  36. <span style="color: #008080"> 36</span> <span style="color: #000000"> {
  37. </span><span style="color: #008080"> 37</span> au = <span style="color: #0000ff">new</span> AccessUtils(pwd, <span style="color: #0000ff">null</span><span style="color: #000000">);
  38. </span><span style="color: #008080"> 38</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  39. </span><span style="color: #008080"> 39</span> <span style="color: #0000ff">if</span>(au.ExecuteSql(sql,<span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  40. </span><span style="color: #008080"> 40</span> <span style="color: #000000"> {
  41. </span><span style="color: #008080"> 41</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  42. </span><span style="color: #008080"> 42</span> <span style="color: #000000"> }
  43. </span><span style="color: #008080"> 43</span> <span style="color: #0000ff">else</span>
  44. <span style="color: #008080"> 44</span> <span style="color: #000000"> {
  45. </span><span style="color: #008080"> 45</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  46. </span><span style="color: #008080"> 46</span> <span style="color: #000000"> }
  47. </span><span style="color: #008080"> 47</span> <span style="color: #000000"> }
  48. </span><span style="color: #008080"> 48</span>
  49. <span style="color: #008080"> 49</span> <span style="color: #000000"> }
  50. </span><span style="color: #008080"> 50</span>
  51. <span style="color: #008080"> 51</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  52. <span style="color: #008080"> 52</span> <span style="color: #808080">///</span><span style="color: #008000"> 在Access数据库中执行sql脚本
  53. </span><span style="color: #008080"> 53</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  54. <span style="color: #008080"> 54</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sqlpath"></span><span style="color: #008000">sql脚本路径</span><span style="color: #808080"></param></span>
  55. <span style="color: #008080"> 55</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="pwd"></span><span style="color: #008000">数据库密码(如果无密码则不填写此参数)</span><span style="color: #808080"></param></span>
  56. <span style="color: #008080"> 56</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></span><span style="color: #008000">执行结果</span><span style="color: #808080"></returns></span>
  57. <span style="color: #008080"> 57</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">bool</span> ExecuteSqlByFile(<span style="color: #0000ff">string</span> sqlpath,<span style="color: #0000ff">string</span> pwd = <span style="color: #0000ff">null</span><span style="color: #000000">)
  58. </span><span style="color: #008080"> 58</span> <span style="color: #000000"> {
  59. </span><span style="color: #008080"> 59</span> AccessUtils au = <span style="color: #0000ff">null</span><span style="color: #000000">;
  60. </span><span style="color: #008080"> 60</span> <span style="color: #008000">//</span><span style="color: #008000">判断密码是否填写</span>
  61. <span style="color: #008080"> 61</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(pwd))
  62. </span><span style="color: #008080"> 62</span> <span style="color: #000000"> {
  63. </span><span style="color: #008080"> 63</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils();
  64. </span><span style="color: #008080"> 64</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  65. </span><span style="color: #008080"> 65</span> <span style="color: #0000ff">if</span> (au.ExecuteSqlByFile(sqlpath, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  66. </span><span style="color: #008080"> 66</span> <span style="color: #000000"> {
  67. </span><span style="color: #008080"> 67</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  68. </span><span style="color: #008080"> 68</span> <span style="color: #000000"> }
  69. </span><span style="color: #008080"> 69</span> <span style="color: #0000ff">else</span>
  70. <span style="color: #008080"> 70</span> <span style="color: #000000"> {
  71. </span><span style="color: #008080"> 71</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  72. </span><span style="color: #008080"> 72</span> <span style="color: #000000"> }
  73. </span><span style="color: #008080"> 73</span> <span style="color: #000000"> }
  74. </span><span style="color: #008080"> 74</span> <span style="color: #0000ff">else</span>
  75. <span style="color: #008080"> 75</span> <span style="color: #000000"> {
  76. </span><span style="color: #008080"> 76</span> au = <span style="color: #0000ff">new</span> AccessUtils(pwd, <span style="color: #0000ff">null</span><span style="color: #000000">);
  77. </span><span style="color: #008080"> 77</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  78. </span><span style="color: #008080"> 78</span> <span style="color: #0000ff">if</span> (au.ExecuteSqlByFile(sqlpath, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  79. </span><span style="color: #008080"> 79</span> <span style="color: #000000"> {
  80. </span><span style="color: #008080"> 80</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  81. </span><span style="color: #008080"> 81</span> <span style="color: #000000"> }
  82. </span><span style="color: #008080"> 82</span> <span style="color: #0000ff">else</span>
  83. <span style="color: #008080"> 83</span> <span style="color: #000000"> {
  84. </span><span style="color: #008080"> 84</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  85. </span><span style="color: #008080"> 85</span> <span style="color: #000000"> }
  86. </span><span style="color: #008080"> 86</span> <span style="color: #000000"> }
  87. </span><span style="color: #008080"> 87</span> <span style="color: #000000"> }
  88. </span><span style="color: #008080"> 88</span>
  89. <span style="color: #008080"> 89</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  90. <span style="color: #008080"> 90</span> <span style="color: #808080">///</span><span style="color: #008000"> 在指定Access数据库中执行sql语句
  91. </span><span style="color: #008080"> 91</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  92. <span style="color: #008080"> 92</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sql"></span><span style="color: #008000">sql脚本</span><span style="color: #808080"></param></span>
  93. <span style="color: #008080"> 93</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="dbpath"></span><span style="color: #008000">数据库所在路径</span><span style="color: #808080"></param></span>
  94. <span style="color: #008080"> 94</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="pwd"></span><span style="color: #008000">执行结果</span><span style="color: #808080"></param></span>
  95. <span style="color: #008080"> 95</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  96. <span style="color: #008080"> 96</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">bool</span> OnExecuteSql(<span style="color: #0000ff">string</span> sql,<span style="color: #0000ff">string</span> dbpath,<span style="color: #0000ff">string</span> pwd = <span style="color: #0000ff">null</span><span style="color: #000000">)
  97. </span><span style="color: #008080"> 97</span> <span style="color: #000000"> {
  98. </span><span style="color: #008080"> 98</span> AccessUtils au = <span style="color: #0000ff">null</span><span style="color: #000000">;
  99. </span><span style="color: #008080"> 99</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(pwd))
  100. </span><span style="color: #008080">100</span> <span style="color: #000000"> {
  101. </span><span style="color: #008080">101</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils(dbpath);
  102. </span><span style="color: #008080">102</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  103. </span><span style="color: #008080">103</span> <span style="color: #0000ff">if</span> (au.ExecuteSql(sql, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  104. </span><span style="color: #008080">104</span> <span style="color: #000000"> {
  105. </span><span style="color: #008080">105</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  106. </span><span style="color: #008080">106</span> <span style="color: #000000"> }
  107. </span><span style="color: #008080">107</span> <span style="color: #0000ff">else</span>
  108. <span style="color: #008080">108</span> <span style="color: #000000"> {
  109. </span><span style="color: #008080">109</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  110. </span><span style="color: #008080">110</span> <span style="color: #000000"> }
  111. </span><span style="color: #008080">111</span> <span style="color: #000000"> }
  112. </span><span style="color: #008080">112</span> <span style="color: #0000ff">else</span>
  113. <span style="color: #008080">113</span> <span style="color: #000000"> {
  114. </span><span style="color: #008080">114</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils(pwd, dbpath);
  115. </span><span style="color: #008080">115</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  116. </span><span style="color: #008080">116</span> <span style="color: #0000ff">if</span> (au.ExecuteSql(sql, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  117. </span><span style="color: #008080">117</span> <span style="color: #000000"> {
  118. </span><span style="color: #008080">118</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  119. </span><span style="color: #008080">119</span> <span style="color: #000000"> }
  120. </span><span style="color: #008080">120</span> <span style="color: #0000ff">else</span>
  121. <span style="color: #008080">121</span> <span style="color: #000000"> {
  122. </span><span style="color: #008080">122</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  123. </span><span style="color: #008080">123</span> <span style="color: #000000"> }
  124. </span><span style="color: #008080">124</span> <span style="color: #000000"> }
  125. </span><span style="color: #008080">125</span>
  126. <span style="color: #008080">126</span> <span style="color: #000000"> }
  127. </span><span style="color: #008080">127</span>
  128. <span style="color: #008080">128</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  129. <span style="color: #008080">129</span> <span style="color: #808080">///</span><span style="color: #008000"> 在指定Access数据库中执行sql语句
  130. </span><span style="color: #008080">130</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  131. <span style="color: #008080">131</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="sqlpath"></span><span style="color: #008000">sql脚本路径</span><span style="color: #808080"></param></span>
  132. <span style="color: #008080">132</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="dbpath"></span><span style="color: #008000">数据库所在路径</span><span style="color: #808080"></param></span>
  133. <span style="color: #008080">133</span> <span style="color: #808080">///</span> <span style="color: #808080"><param name="pwd"></span><span style="color: #008000">执行结果</span><span style="color: #808080"></param></span>
  134. <span style="color: #008080">134</span> <span style="color: #808080">///</span> <span style="color: #808080"><returns></returns></span>
  135. <span style="color: #008080">135</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">bool</span> OnExecuteSqlByFile(<span style="color: #0000ff">string</span> sqlpath, <span style="color: #0000ff">string</span> dbpath, <span style="color: #0000ff">string</span> pwd = <span style="color: #0000ff">null</span><span style="color: #000000">)
  136. </span><span style="color: #008080">136</span> <span style="color: #000000"> {
  137. </span><span style="color: #008080">137</span> AccessUtils au = <span style="color: #0000ff">null</span><span style="color: #000000">;
  138. </span><span style="color: #008080">138</span> <span style="color: #008000">//</span><span style="color: #008000">判断密码是否填写</span>
  139. <span style="color: #008080">139</span> <span style="color: #0000ff">if</span> (<span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(pwd))
  140. </span><span style="color: #008080">140</span> <span style="color: #000000"> {
  141. </span><span style="color: #008080">141</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils(dbpath);
  142. </span><span style="color: #008080">142</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  143. </span><span style="color: #008080">143</span> <span style="color: #0000ff">if</span> (au.ExecuteSqlByFile(sqlpath, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  144. </span><span style="color: #008080">144</span> <span style="color: #000000"> {
  145. </span><span style="color: #008080">145</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  146. </span><span style="color: #008080">146</span> <span style="color: #000000"> }
  147. </span><span style="color: #008080">147</span> <span style="color: #0000ff">else</span>
  148. <span style="color: #008080">148</span> <span style="color: #000000"> {
  149. </span><span style="color: #008080">149</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  150. </span><span style="color: #008080">150</span> <span style="color: #000000"> }
  151. </span><span style="color: #008080">151</span> <span style="color: #000000"> }
  152. </span><span style="color: #008080">152</span> <span style="color: #0000ff">else</span>
  153. <span style="color: #008080">153</span> <span style="color: #000000"> {
  154. </span><span style="color: #008080">154</span> au = <span style="color: #0000ff">new</span><span style="color: #000000"> AccessUtils(pwd, dbpath);
  155. </span><span style="color: #008080">155</span> <span style="color: #0000ff">string</span> msg = <span style="color: #0000ff">null</span><span style="color: #000000">;
  156. </span><span style="color: #008080">156</span> <span style="color: #0000ff">if</span> (au.ExecuteSqlByFile(sqlpath, <span style="color: #0000ff">ref</span><span style="color: #000000"> msg))
  157. </span><span style="color: #008080">157</span> <span style="color: #000000"> {
  158. </span><span style="color: #008080">158</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span><span style="color: #000000">;
  159. </span><span style="color: #008080">159</span> <span style="color: #000000"> }
  160. </span><span style="color: #008080">160</span> <span style="color: #0000ff">else</span>
  161. <span style="color: #008080">161</span> <span style="color: #000000"> {
  162. </span><span style="color: #008080">162</span> <span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> AccessRuntimeException(msg);
  163. </span><span style="color: #008080">163</span> <span style="color: #000000"> }
  164. </span><span style="color: #008080">164</span> <span style="color: #000000"> }
  165. </span><span style="color: #008080">165</span> <span style="color: #000000"> }
  166. </span><span style="color: #008080">166</span> <span style="color: #000000"> }
  167. </span><span style="color: #008080">167</span> }
AccessToo.cs

本工具中还定义了两个自定义的异常类:AccessRuntimeException.cs,ConnectionStringElementNotFindException.cs,下付代码:

技术分享
  1. <span style="color: #0000ff">using</span><span style="color: #000000"> System;
  2. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Collections.Generic;
  3. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Linq;
  4. </span><span style="color: #0000ff">using</span><span style="color: #000000"> System.Text;
  5. </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> AccessRuntime.Bin
  6. {
  7. </span><span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  8. <span style="color: #808080">///</span><span style="color: #008000"> AccessRuntime异常
  9. </span><span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  10. <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> AccessRuntimeException:Exception
  11. {
  12. </span><span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  13. <span style="color: #808080">///</span><span style="color: #008000"> 配置文件节点未找到
  14. </span><span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  15. <span style="color: #0000ff">public</span><span style="color: #000000"> AccessRuntimeException()
  16. {
  17. }
  18. </span><span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  19. <span style="color: #808080">///</span><span style="color: #008000"> 配置文件节点未找到
  20. </span><span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  21. <span style="color: #808080">///</span> <span style="color: #808080"><param name="message"></span><span style="color: #008000">异常信息</span><span style="color: #808080"></param></span>
  22. <span style="color: #0000ff">public</span> AccessRuntimeException(<span style="color: #0000ff">string</span> message):<span style="color: #0000ff">base</span><span style="color: #000000">(message)
  23. {
  24. }
  25. </span><span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
  26. <span style="color: #808080">///</span>
  27. <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
  28. <span style="color: #808080">///</span> <span style="color: #808080"><param name="message"></span><span style="color: #008000">异常信息</span><span style="color: #808080"></param></span>
  29. <span style="color: # </div>
  30. <div class=" "="">
  31. <ul class="m-news-opt fix">
  32. <li class="opt-item">
  33. <a href="/sql_question-419454.html" target="_blank"><p>< 上一篇</p><p class="ellipsis">oracle(查询数据库对象1)</p></a>
  34. </li>
  35. <li class="opt-item ta-r">
  36. <a href="/sql_question-419456.html" target="_blank"><p>下一篇 ></p><p class="ellipsis">Mybatis框架之动态SQL书写方式小结</p></a>
  37. </li>
  38. </ul>
  39. </span>

人气教程排行