时间:2021-07-01 10:21:17 帮助过:13人阅读
一、底层
注:引用命名空间
using System.Data;
using System.Data.SqlClient;
- <span style="color: #008080"> 1</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> SqlHelper
- </span><span style="color: #008080"> 2</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 3</span> <span style="color: #808080">///</span> <span style="color: #808080"><summary></span>
- <span style="color: #008080"> 4</span> <span style="color: #808080">///</span><span style="color: #008000"> 数据库连接字符串
- </span><span style="color: #008080"> 5</span> <span style="color: #808080">///</span><span style="color: #008000"> Data Source=数据库地址;Initial Catalog=数据库名称;Persist Security Info=True;User ID=用户名;Password=密码
- </span><span style="color: #008080"> 6</span> <span style="color: #808080">///</span> <span style="color: #808080"></summary></span>
- <span style="color: #008080"> 7</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">string</span> _SqlConnectionStr = <span style="color: #800000">""</span><span style="color: #000000">;
- </span><span style="color: #008080"> 8</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> SqlConnectionStr { <span style="color: #0000ff">get</span> { <span style="color: #0000ff">return</span><span style="color: #000000"> _SqlConnectionStr; } }
- </span><span style="color: #008080"> 9</span> <span style="color: #0000ff">public</span> SqlHelper(<span style="color: #0000ff">string</span><span style="color: #000000"> connStr)
- </span><span style="color: #008080"> 10</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 11</span> <span style="color: #0000ff">this</span>._SqlConnectionStr =<span style="color: #000000"> connStr;
- </span><span style="color: #008080"> 12</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 13</span> <span style="color: #0000ff">#region</span> 单值查询
- <span style="color: #008080"> 14</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> GetSingle(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080"> 15</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 16</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080"> 17</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 18</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand(sqlStr, conn))
- </span><span style="color: #008080"> 19</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 20</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080"> 21</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 22</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080"> 23</span> <span style="color: #0000ff">return</span> String.Format(<span style="color: #800000">"</span><span style="color: #800000">{0}</span><span style="color: #800000">"</span><span style="color: #000000">, cmd.ExecuteScalar());
- </span><span style="color: #008080"> 24</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 25</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080"> 26</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 27</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080"> 28</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 29</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080"> 30</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 31</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080"> 32</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 33</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 34</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 35</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 36</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> GetSingle(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr,SqlParameter[] cmdParams)
- </span><span style="color: #008080"> 37</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 38</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080"> 39</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 40</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080"> 41</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 42</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080"> 43</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 44</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080"> 45</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080"> 46</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080"> 47</span> cmd.CommandText =<span style="color: #000000"> sqlStr;
- </span><span style="color: #008080"> 48</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080"> 49</span> <span style="color: #0000ff">return</span> String.Format(<span style="color: #800000">"</span><span style="color: #800000">{0}</span><span style="color: #800000">"</span><span style="color: #000000">, cmd.ExecuteScalar());
- </span><span style="color: #008080"> 50</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 51</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080"> 52</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 53</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080"> 54</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 55</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080"> 56</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 57</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080"> 58</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 59</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 60</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 61</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 62</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080"> 63</span>
- <span style="color: #008080"> 64</span> <span style="color: #0000ff">#region</span> 查询数据集
- <span style="color: #008080"> 65</span> <span style="color: #0000ff">public</span> DataSet Query(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080"> 66</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 67</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080"> 68</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 69</span> <span style="color: #0000ff">using</span> (SqlDataAdapter ada = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlDataAdapter(sqlStr, conn))
- </span><span style="color: #008080"> 70</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 71</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080"> 72</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 73</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080"> 74</span> DataSet ds = <span style="color: #0000ff">new</span><span style="color: #000000"> DataSet();
- </span><span style="color: #008080"> 75</span> <span style="color: #000000"> ada.Fill(ds);
- </span><span style="color: #008080"> 76</span> <span style="color: #0000ff">return</span><span style="color: #000000"> ds;
- </span><span style="color: #008080"> 77</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 78</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080"> 79</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 80</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080"> 81</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 82</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080"> 83</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 84</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080"> 85</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 86</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 87</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 88</span> <span style="color: #000000"> }
- </span><span style="color: #008080"> 89</span> <span style="color: #0000ff">public</span> DataSet Query(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr,SqlParameter[] cmdParams)
- </span><span style="color: #008080"> 90</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 91</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080"> 92</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 93</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080"> 94</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 95</span> <span style="color: #0000ff">using</span> (SqlDataAdapter ada = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlDataAdapter(cmd))
- </span><span style="color: #008080"> 96</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 97</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080"> 98</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 99</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">100</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">101</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080">102</span> cmd.CommandText =<span style="color: #000000"> sqlStr;
- </span><span style="color: #008080">103</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080">104</span>
- <span style="color: #008080">105</span> DataSet ds = <span style="color: #0000ff">new</span><span style="color: #000000"> DataSet();
- </span><span style="color: #008080">106</span> <span style="color: #000000"> ada.Fill(ds);
- </span><span style="color: #008080">107</span> <span style="color: #0000ff">return</span><span style="color: #000000"> ds;
- </span><span style="color: #008080">108</span> <span style="color: #000000"> }
- </span><span style="color: #008080">109</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">110</span> <span style="color: #000000"> {
- </span><span style="color: #008080">111</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">112</span> <span style="color: #000000"> }
- </span><span style="color: #008080">113</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">114</span> <span style="color: #000000"> {
- </span><span style="color: #008080">115</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">116</span> <span style="color: #000000"> }
- </span><span style="color: #008080">117</span> <span style="color: #000000"> }
- </span><span style="color: #008080">118</span> <span style="color: #000000"> }
- </span><span style="color: #008080">119</span> <span style="color: #000000"> }
- </span><span style="color: #008080">120</span> <span style="color: #000000"> }
- </span><span style="color: #008080">121</span> <span style="color: #0000ff">public</span> DataSet RunProcedure(<span style="color: #0000ff">string</span><span style="color: #000000"> procName,SqlParameter[] cmdParams)
- </span><span style="color: #008080">122</span> <span style="color: #000000"> {
- </span><span style="color: #008080">123</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">124</span> <span style="color: #000000"> {
- </span><span style="color: #008080">125</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080">126</span> <span style="color: #000000"> {
- </span><span style="color: #008080">127</span> <span style="color: #0000ff">using</span> (SqlDataAdapter ada = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlDataAdapter(cmd))
- </span><span style="color: #008080">128</span> <span style="color: #000000"> {
- </span><span style="color: #008080">129</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">130</span> <span style="color: #000000"> {
- </span><span style="color: #008080">131</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">132</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">133</span> cmd.CommandType =<span style="color: #000000"> CommandType.StoredProcedure;
- </span><span style="color: #008080">134</span> cmd.CommandText =<span style="color: #000000"> procName;
- </span><span style="color: #008080">135</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080">136</span>
- <span style="color: #008080">137</span> DataSet ds = <span style="color: #0000ff">new</span><span style="color: #000000"> DataSet();
- </span><span style="color: #008080">138</span> <span style="color: #000000"> ada.Fill(ds);
- </span><span style="color: #008080">139</span> <span style="color: #0000ff">return</span><span style="color: #000000"> ds;
- </span><span style="color: #008080">140</span> <span style="color: #000000"> }
- </span><span style="color: #008080">141</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">142</span> <span style="color: #000000"> {
- </span><span style="color: #008080">143</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">144</span> <span style="color: #000000"> }
- </span><span style="color: #008080">145</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">146</span> <span style="color: #000000"> {
- </span><span style="color: #008080">147</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">148</span> <span style="color: #000000"> }
- </span><span style="color: #008080">149</span> <span style="color: #000000"> }
- </span><span style="color: #008080">150</span> <span style="color: #000000"> }
- </span><span style="color: #008080">151</span> <span style="color: #000000"> }
- </span><span style="color: #008080">152</span> <span style="color: #000000"> }
- </span><span style="color: #008080">153</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">154</span>
- <span style="color: #008080">155</span> <span style="color: #0000ff">#region</span> 单表查询
- <span style="color: #008080">156</span> <span style="color: #0000ff">public</span> DataTable GetQueryData(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080">157</span> <span style="color: #000000"> {
- </span><span style="color: #008080">158</span> DataSet ds =<span style="color: #000000"> Query(sqlStr);
- </span><span style="color: #008080">159</span> <span style="color: #0000ff">if</span> (ds != <span style="color: #0000ff">null</span> && ds.Tables.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">160</span> <span style="color: #0000ff">return</span> ds.Tables[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">161</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">162</span> <span style="color: #000000"> }
- </span><span style="color: #008080">163</span> <span style="color: #0000ff">public</span> DataTable GetQueryData(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr ,SqlParameter[] cmdParams)
- </span><span style="color: #008080">164</span> <span style="color: #000000"> {
- </span><span style="color: #008080">165</span> DataSet ds =<span style="color: #000000"> Query(sqlStr, cmdParams);
- </span><span style="color: #008080">166</span> <span style="color: #0000ff">if</span> (ds != <span style="color: #0000ff">null</span> && ds.Tables.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">167</span> <span style="color: #0000ff">return</span> ds.Tables[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">168</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">169</span> <span style="color: #000000"> }
- </span><span style="color: #008080">170</span> <span style="color: #0000ff">public</span> DataTable GetProcData(<span style="color: #0000ff">string</span><span style="color: #000000"> procName,SqlParameter[] cmdParams)
- </span><span style="color: #008080">171</span> <span style="color: #000000"> {
- </span><span style="color: #008080">172</span> DataSet ds =<span style="color: #000000"> RunProcedure(procName, cmdParams);
- </span><span style="color: #008080">173</span> <span style="color: #0000ff">if</span> (ds != <span style="color: #0000ff">null</span> && ds.Tables.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">174</span> <span style="color: #0000ff">return</span> ds.Tables[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">175</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">176</span> <span style="color: #000000"> }
- </span><span style="color: #008080">177</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">178</span>
- <span style="color: #008080">179</span> <span style="color: #0000ff">#region</span> 单行查询
- <span style="color: #008080">180</span> <span style="color: #0000ff">public</span> DataRow GetQueryRecord(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080">181</span> <span style="color: #000000"> {
- </span><span style="color: #008080">182</span> DataTable dt =<span style="color: #000000"> GetQueryData(sqlStr);
- </span><span style="color: #008080">183</span> <span style="color: #0000ff">if</span> (dt != <span style="color: #0000ff">null</span> && dt.Rows.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">184</span> <span style="color: #0000ff">return</span> dt.Rows[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">185</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">186</span> <span style="color: #000000"> }
- </span><span style="color: #008080">187</span> <span style="color: #0000ff">public</span> DataRow GetQueryRecord(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr,SqlParameter[] cmdParams)
- </span><span style="color: #008080">188</span> <span style="color: #000000"> {
- </span><span style="color: #008080">189</span> DataTable dt =<span style="color: #000000"> GetQueryData(sqlStr, cmdParams);
- </span><span style="color: #008080">190</span> <span style="color: #0000ff">if</span> (dt != <span style="color: #0000ff">null</span> && dt.Rows.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">191</span> <span style="color: #0000ff">return</span> dt.Rows[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">192</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">193</span> <span style="color: #000000"> }
- </span><span style="color: #008080">194</span> <span style="color: #0000ff">public</span> DataRow GetProcRecord(<span style="color: #0000ff">string</span><span style="color: #000000"> procName,SqlParameter[] cmdParams)
- </span><span style="color: #008080">195</span> <span style="color: #000000"> {
- </span><span style="color: #008080">196</span> DataTable dt =<span style="color: #000000"> GetProcData(procName, cmdParams);
- </span><span style="color: #008080">197</span> <span style="color: #0000ff">if</span> (dt != <span style="color: #0000ff">null</span> && dt.Rows.Count > <span style="color: #800080">0</span><span style="color: #000000">)
- </span><span style="color: #008080">198</span> <span style="color: #0000ff">return</span> dt.Rows[<span style="color: #800080">0</span><span style="color: #000000">];
- </span><span style="color: #008080">199</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080">200</span> <span style="color: #000000"> }
- </span><span style="color: #008080">201</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">202</span>
- <span style="color: #008080">203</span> <span style="color: #0000ff">#region</span> 使用完应关闭Reader
- <span style="color: #008080">204</span> <span style="color: #0000ff">public</span> SqlDataReader ExecuteReader(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080">205</span> <span style="color: #000000"> {
- </span><span style="color: #008080">206</span> SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr);
- </span><span style="color: #008080">207</span> SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand(sqlStr, conn);
- </span><span style="color: #008080">208</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">209</span> <span style="color: #000000"> {
- </span><span style="color: #008080">210</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">211</span> <span style="color: #0000ff">return</span><span style="color: #000000"> cmd.ExecuteReader(CommandBehavior.CloseConnection);
- </span><span style="color: #008080">212</span> <span style="color: #000000"> }
- </span><span style="color: #008080">213</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">214</span> <span style="color: #000000"> {
- </span><span style="color: #008080">215</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">216</span> <span style="color: #000000"> }
- </span><span style="color: #008080">217</span> <span style="color: #000000"> }
- </span><span style="color: #008080">218</span> <span style="color: #0000ff">public</span> SqlDataReader ExecuteReeder(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr,SqlParameter[] cmdParams)
- </span><span style="color: #008080">219</span> <span style="color: #000000"> {
- </span><span style="color: #008080">220</span> SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr);
- </span><span style="color: #008080">221</span> SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand();
- </span><span style="color: #008080">222</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">223</span> <span style="color: #000000"> {
- </span><span style="color: #008080">224</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">225</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">226</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080">227</span> cmd.CommandText =<span style="color: #000000"> sqlStr;
- </span><span style="color: #008080">228</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080">229</span> <span style="color: #0000ff">return</span><span style="color: #000000"> cmd.ExecuteReader(CommandBehavior.CloseConnection);
- </span><span style="color: #008080">230</span> <span style="color: #000000"> }
- </span><span style="color: #008080">231</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">232</span> <span style="color: #000000"> {
- </span><span style="color: #008080">233</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">234</span> <span style="color: #000000"> }
- </span><span style="color: #008080">235</span> <span style="color: #000000"> }
- </span><span style="color: #008080">236</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">237</span>
- <span style="color: #008080">238</span> <span style="color: #0000ff">#region</span> 执行sql语句
- <span style="color: #008080">239</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ExecuteSql(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr)
- </span><span style="color: #008080">240</span> <span style="color: #000000"> {
- </span><span style="color: #008080">241</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">242</span> <span style="color: #000000"> {
- </span><span style="color: #008080">243</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand(sqlStr, conn))
- </span><span style="color: #008080">244</span> <span style="color: #000000"> {
- </span><span style="color: #008080">245</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">246</span> <span style="color: #000000"> {
- </span><span style="color: #008080">247</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">248</span> <span style="color: #0000ff">return</span><span style="color: #000000"> cmd.ExecuteNonQuery();
- </span><span style="color: #008080">249</span> <span style="color: #000000"> }
- </span><span style="color: #008080">250</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">251</span> <span style="color: #000000"> {
- </span><span style="color: #008080">252</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">253</span> <span style="color: #000000"> }
- </span><span style="color: #008080">254</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">255</span> <span style="color: #000000"> {
- </span><span style="color: #008080">256</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">257</span> <span style="color: #000000"> }
- </span><span style="color: #008080">258</span> <span style="color: #000000"> }
- </span><span style="color: #008080">259</span> <span style="color: #000000"> }
- </span><span style="color: #008080">260</span> <span style="color: #000000"> }
- </span><span style="color: #008080">261</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ExecuteSql(<span style="color: #0000ff">string</span><span style="color: #000000"> sqlStr,SqlParameter[] cmdParams)
- </span><span style="color: #008080">262</span> <span style="color: #000000"> {
- </span><span style="color: #008080">263</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">264</span> <span style="color: #000000"> {
- </span><span style="color: #008080">265</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080">266</span> <span style="color: #000000"> {
- </span><span style="color: #008080">267</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">268</span> <span style="color: #000000"> {
- </span><span style="color: #008080">269</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">270</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">271</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080">272</span> cmd.CommandText =<span style="color: #000000"> sqlStr;
- </span><span style="color: #008080">273</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080">274</span> <span style="color: #0000ff">return</span><span style="color: #000000"> cmd.ExecuteNonQuery();
- </span><span style="color: #008080">275</span> <span style="color: #000000"> }
- </span><span style="color: #008080">276</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">277</span> <span style="color: #000000"> {
- </span><span style="color: #008080">278</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">279</span> <span style="color: #000000"> }
- </span><span style="color: #008080">280</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">281</span> <span style="color: #000000"> {
- </span><span style="color: #008080">282</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">283</span> <span style="color: #000000"> }
- </span><span style="color: #008080">284</span> <span style="color: #000000"> }
- </span><span style="color: #008080">285</span> <span style="color: #000000"> }
- </span><span style="color: #008080">286</span> <span style="color: #000000"> }
- </span><span style="color: #008080">287</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">288</span>
- <span style="color: #008080">289</span> <span style="color: #0000ff">#region</span> 执行事务
- <span style="color: #008080">290</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ExecuteSqlTran(List<<span style="color: #0000ff">string</span>><span style="color: #000000"> sqlStrList)
- </span><span style="color: #008080">291</span> <span style="color: #000000"> {
- </span><span style="color: #008080">292</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">293</span> <span style="color: #000000"> {
- </span><span style="color: #008080">294</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080">295</span> <span style="color: #000000"> {
- </span><span style="color: #008080">296</span> <span style="color: #0000ff">using</span> (SqlTransaction tran =<span style="color: #000000"> conn.BeginTransaction())
- </span><span style="color: #008080">297</span> <span style="color: #000000"> {
- </span><span style="color: #008080">298</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">299</span> <span style="color: #000000"> {
- </span><span style="color: #008080">300</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">301</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080">302</span> cmd.Transaction =<span style="color: #000000"> tran;
- </span><span style="color: #008080">303</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">304</span> <span style="color: #0000ff">int</span> count = <span style="color: #800080">0</span><span style="color: #000000">;
- </span><span style="color: #008080">305</span> <span style="color: #0000ff">foreach</span>(<span style="color: #0000ff">string</span> sql <span style="color: #0000ff">in</span><span style="color: #000000"> sqlStrList)
- </span><span style="color: #008080">306</span> <span style="color: #000000"> {
- </span><span style="color: #008080">307</span> cmd.CommandText =<span style="color: #000000"> sql;
- </span><span style="color: #008080">308</span> count +=<span style="color: #000000"> cmd.ExecuteNonQuery();
- </span><span style="color: #008080">309</span> <span style="color: #000000"> }
- </span><span style="color: #008080">310</span> <span style="color: #000000"> tran.Commit();
- </span><span style="color: #008080">311</span> <span style="color: #0000ff">return</span><span style="color: #000000"> count;
- </span><span style="color: #008080">312</span> <span style="color: #000000"> }
- </span><span style="color: #008080">313</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">314</span> <span style="color: #000000"> {
- </span><span style="color: #008080">315</span> <span style="color: #000000"> tran.Rollback();
- </span><span style="color: #008080">316</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">317</span> <span style="color: #000000"> }
- </span><span style="color: #008080">318</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">319</span> <span style="color: #000000"> {
- </span><span style="color: #008080">320</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">321</span> <span style="color: #000000"> }
- </span><span style="color: #008080">322</span> <span style="color: #000000"> }
- </span><span style="color: #008080">323</span> <span style="color: #000000"> }
- </span><span style="color: #008080">324</span> <span style="color: #000000"> }
- </span><span style="color: #008080">325</span> <span style="color: #000000"> }
- </span><span style="color: #008080">326</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ExecuteSqlTran(List<KeyValuePair<<span style="color: #0000ff">string</span>,SqlParameter[]>><span style="color: #000000"> sqlStrList)
- </span><span style="color: #008080">327</span> <span style="color: #000000"> {
- </span><span style="color: #008080">328</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">329</span> <span style="color: #000000"> {
- </span><span style="color: #008080">330</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080">331</span> <span style="color: #000000"> {
- </span><span style="color: #008080">332</span> <span style="color: #0000ff">using</span> (SqlTransaction tran =<span style="color: #000000"> conn.BeginTransaction())
- </span><span style="color: #008080">333</span> <span style="color: #000000"> {
- </span><span style="color: #008080">334</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">335</span> <span style="color: #000000"> {
- </span><span style="color: #008080">336</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">337</span> cmd.CommandType =<span style="color: #000000"> CommandType.Text;
- </span><span style="color: #008080">338</span> cmd.Transaction =<span style="color: #000000"> tran;
- </span><span style="color: #008080">339</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">340</span> <span style="color: #0000ff">int</span> count = <span style="color: #800080">0</span><span style="color: #000000">;
- </span><span style="color: #008080">341</span> <span style="color: #0000ff">foreach</span>(<span style="color: #0000ff">var</span> item <span style="color: #0000ff">in</span><span style="color: #000000"> sqlStrList)
- </span><span style="color: #008080">342</span> <span style="color: #000000"> {
- </span><span style="color: #008080">343</span> cmd.CommandText =<span style="color: #000000"> item.Key;
- </span><span style="color: #008080">344</span> <span style="color: #000000"> cmd.Parameters.Clear();
- </span><span style="color: #008080">345</span> <span style="color: #000000"> cmd.Parameters.AddRange(item.Value);
- </span><span style="color: #008080">346</span> count +=<span style="color: #000000"> cmd.ExecuteNonQuery();
- </span><span style="color: #008080">347</span> <span style="color: #000000"> }
- </span><span style="color: #008080">348</span> <span style="color: #000000"> tran.Commit();
- </span><span style="color: #008080">349</span> <span style="color: #0000ff">return</span><span style="color: #000000"> count;
- </span><span style="color: #008080">350</span> <span style="color: #000000"> }
- </span><span style="color: #008080">351</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">352</span> <span style="color: #000000"> {
- </span><span style="color: #008080">353</span> <span style="color: #000000"> tran.Rollback();
- </span><span style="color: #008080">354</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">355</span> <span style="color: #000000"> }
- </span><span style="color: #008080">356</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">357</span> <span style="color: #000000"> {
- </span><span style="color: #008080">358</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">359</span> <span style="color: #000000"> }
- </span><span style="color: #008080">360</span> <span style="color: #000000"> }
- </span><span style="color: #008080">361</span> <span style="color: #000000"> }
- </span><span style="color: #008080">362</span> <span style="color: #000000"> }
- </span><span style="color: #008080">363</span> <span style="color: #000000"> }
- </span><span style="color: #008080">364</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ExecuteProc(<span style="color: #0000ff">string</span><span style="color: #000000"> procName,SqlParameter[] cmdParams)
- </span><span style="color: #008080">365</span> <span style="color: #000000"> {
- </span><span style="color: #008080">366</span> <span style="color: #0000ff">using</span> (SqlConnection conn = <span style="color: #0000ff">new</span> SqlConnection(<span style="color: #0000ff">this</span><span style="color: #000000">._SqlConnectionStr))
- </span><span style="color: #008080">367</span> <span style="color: #000000"> {
- </span><span style="color: #008080">368</span> <span style="color: #0000ff">using</span> (SqlCommand cmd = <span style="color: #0000ff">new</span><span style="color: #000000"> SqlCommand())
- </span><span style="color: #008080">369</span> <span style="color: #000000"> {
- </span><span style="color: #008080">370</span> <span style="color: #0000ff">try</span>
- <span style="color: #008080">371</span> <span style="color: #000000"> {
- </span><span style="color: #008080">372</span> <span style="color: #000000"> conn.Open();
- </span><span style="color: #008080">373</span> cmd.Connection =<span style="color: #000000"> conn;
- </span><span style="color: #008080">374</span> cmd.CommandType =<span style="color: #000000"> CommandType.StoredProcedure;
- </span><span style="color: #008080">375</span> cmd.CommandText =<span style="color: #000000"> procName;
- </span><span style="color: #008080">376</span> <span style="color: #000000"> cmd.Parameters.AddRange(cmdParams);
- </span><span style="color: #008080">377</span> <span style="color: #0000ff">return</span><span style="color: #000000"> cmd.ExecuteNonQuery();
- </span><span style="color: #008080">378</span> <span style="color: #000000"> }
- </span><span style="color: #008080">379</span> <span style="color: #0000ff">catch</span><span style="color: #000000">(SqlException e)
- </span><span style="color: #008080">380</span> <span style="color: #000000"> {
- </span><span style="color: #008080">381</span> <span style="color: #0000ff">throw</span><span style="color: #000000"> e;
- </span><span style="color: #008080">382</span> <span style="color: #000000"> }
- </span><span style="color: #008080">383</span> <span style="color: #0000ff">finally</span>
- <span style="color: #008080">384</span> <span style="color: #000000"> {
- </span><span style="color: #008080">385</span> <span style="color: #000000"> conn.Close();
- </span><span style="color: #008080">386</span> <span style="color: #000000"> }
- </span><span style="color: #008080">387</span> <span style="color: #000000"> }
- </span><span style="color: #008080">388</span> <span style="color: #000000"> }
- </span><span style="color: #008080">389</span> <span style="color: #000000"> }
- </span><span style="color: #008080">390</span> <span style="color: #0000ff">#endregion</span>
- <span style="color: #008080">391</span> }
二、工厂模式
- <span style="color: #008080"> 1</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> DbProvider
- </span><span style="color: #008080"> 2</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 3</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span> _SqlConnectionStr = <span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #008080"> 4</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span><span style="color: #000000"> SqlConnectionStr
- </span><span style="color: #008080"> 5</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 6</span> <span style="color: #0000ff">get</span>
- <span style="color: #008080"> 7</span> <span style="color: #000000"> {
- </span><span style="color: #008080"> 8</span> <span style="color: #0000ff">string</span> connStr =<span style="color: #000000"> _SqlConnectionStr;
- </span><span style="color: #008080"> 9</span> <span style="color: #0000ff">if</span> (connStr == <span style="color: #0000ff">null</span><span style="color: #000000">)
- </span><span style="color: #008080">10</span> connStr = <span style="color: #800000">"</span><span style="color: #800000">Data Source=(local);Initial Catalog=testDB;Persist Security Info=True;User ID=sa;Password=123456</span><span style="color: #800000">"</span><span style="color: #000000">; //一般这里是读取项目配置文件里的数据库参数来生成连接字符串
- </span><span style="color: #008080">11</span> <span style="color: #0000ff">return</span><span style="color: #000000"> connStr;
- </span><span style="color: #008080">12</span> <span style="color: #000000"> }
- </span><span style="color: #008080">13</span> <span style="color: #000000"> }
- </span><span style="color: #008080">14</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span><span style="color: #000000"> SqlHelper SqlServer
- </span><span style="color: #008080">15</span> <span style="color: #000000"> {
- </span><span style="color: #008080">16</span> <span style="color: #0000ff">get</span>
- <span style="color: #008080">17</span> <span style="color: #000000"> {
- </span><span style="color: #008080">18</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span><span style="color: #000000"> SqlHelper(SqlConnectionStr);
- </span><span style="color: #008080">19</span> <span style="color: #000000"> }
- </span><span style="color: #008080">20</span> <span style="color: #000000"> }
- </span><span style="color: #008080">21</span> }
三、实例使用
- <span style="color: #008080">1</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> Demo
- </span><span style="color: #008080">2</span> <span style="color: #000000"> {
- </span><span style="color: #008080">3</span> <span style="color: #0000ff">public</span> DataTable QueryOrderInfo(<span style="color: #0000ff">string</span><span style="color: #000000"> id)
- </span><span style="color: #008080">4</span> <span style="color: #000000"> {
- </span><span style="color: #008080">5</span> <span style="color: #0000ff">string</span> sql = <span style="color: #800000">"</span><span style="color: #800000">select * from order where id=@id</span><span style="color: #800000">"</span><span style="color: #000000">;
- </span><span style="color: #008080">6</span> SqlParameter[] cmdParams = <span style="color: #0000ff">new</span> SqlParameter[] { <span style="color: #0000ff">new</span> SqlParameter(<span style="color: #800000">"</span><span style="color: #800000">@id</span><span style="color: #800000">"</span><span style="color: #000000">, id) };
- </span><span style="color: #008080">7</span> <span style="color: #0000ff">return</span><span style="color: #000000"> DbProvider.SqlServer.GetQueryData(sql, cmdParams);
- </span><span style="color: #008080">8</span> <span style="color: #000000"> }
- </span><span style="color: #008080">9</span> }
C#:SqlHelper
标签:connect on() 数据 ret 数据库 oca 工厂模式 man data