1 using System;
2 using System.Collections.Generic;
3 using System.Configuration;
4 using System.Data;
5 using System.Data.SqlClient;
6 using System.Text;
7
8 namespace YcTools
9 {
10 /// <summary>C# SQL数据库助手类2.0</summary>
11 public class YSqlHelper
12 {
13 //Sql连接语句
14 /*注意引用System.Configuration
15 * <connectionStrings>
16 * <add name="YcSqlCon"
17 * connectionString="Data Source=服务器;Initial Catalog=数据库;User ID=登录名;Password=密码"
18 * providerName="System.Data.SqlClient"/>
19 * </connectionStrings>
20 */
21 // private string connectionString = ConfigurationManager.ConnectionStrings["YcSqlCon"].ConnectionString;
22 private string connectionString = "";
23 public YSqlHelper(string sqlPath)
24 {
25 //实例化对应的数据库链接
26 connectionString = ConfigurationManager.ConnectionStrings[sqlPath].ConnectionString;
27 }
28
29 /// <summary>执行不带参数的增删改SQL语句或存储过程 ,返回受影响的行数</summary>
30 public int ExecuteNonQuery(string cmdText)
31 {
32 int res = 0;//受影响的行数
33 using (SqlConnection conn = new SqlConnection(connectionString))
34 {
35 try
36 {
37 conn.Open();//打开数据库链接
38 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
39 {
40 cmd.CommandType = CommandType.Text;
41 res = cmd.ExecuteNonQuery();//执行Sql语句并受影响的行数
42 }
43 }
44 catch
45 {
46
47 }
48 finally
49 {
50 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
51 {
52 conn.Close();//关闭与数据库的链接
53 }
54 }
55 }
56 return res;
57 }
58
59 /// <summary> 执行带参数的增删改SQL语句或存储过程,返回受影响的行数</summary>
60 public int ExecuteNonQuery(string cmdText, SqlParameter[] paras)
61 {
62 int res = 0;//受影响的行数
63 using (SqlConnection conn = new SqlConnection(connectionString))
64 {
65 try
66 {
67 conn.Open();//打开数据库链接
68 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
69 {
70 cmd.CommandType = CommandType.Text;
71 cmd.Parameters.AddRange(paras);
72 res = cmd.ExecuteNonQuery();//执行Sql语句并受影响的行数
73 }
74 }
75 catch
76 {
77
78 }
79 finally
80 {
81 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
82 {
83 conn.Close();//关闭与数据库的链接
84 }
85 }
86 }
87 return res;
88 }
89
90 /// <summary> 执行不带参数的查询SQL语句或存储过程,返回DataTable对象</summary>
91 public DataTable ExecuteQueryDataTable(string cmdText)
92 {
93 DataTable dt = new DataTable();
94 using (SqlConnection conn = new SqlConnection(connectionString))
95 {
96 try
97 {
98 conn.Open();//打开数据库链接
99 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
100 {
101 cmd.CommandType = CommandType.Text;
102 using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
103 {
104 dt.Load(sdr);
105 }
106 }
107 }
108 catch
109 {
110
111 }
112 finally
113 {
114 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
115 {
116 conn.Close();//关闭与数据库的链接
117 }
118 }
119 }
120 return dt;
121 }
122
123 /// <summary> 执行带参数的查询SQL语句或存储过程,返回DataTable对象</summary>
124 public DataTable ExecuteQueryDataTable(string cmdText, SqlParameter[] paras)
125 {
126 DataTable dt = new DataTable();
127 using (SqlConnection conn = new SqlConnection(connectionString))
128 {
129 try
130 {
131 conn.Open();//打开数据库链接
132 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
133 {
134 cmd.CommandType = CommandType.Text;
135 cmd.Parameters.AddRange(paras);
136 using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
137 {
138 dt.Load(sdr);
139 }
140 }
141 }
142 catch
143 {
144
145 }
146 finally
147 {
148 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
149 {
150 conn.Close();//关闭与数据库的链接
151 }
152 }
153 }
154 return dt;
155 }
156
157 /// <summary> 执行不带参数的查询SQL语句或存储过程,返回DataSet对象</summary>
158 public DataSet ExecuteQueryDataSet(string cmdText)
159 {
160 DataSet ds = new DataSet();
161 using (SqlConnection conn = new SqlConnection(connectionString))
162 {
163 try
164 {
165 conn.Open();//打开数据库链接
166 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
167 {
168 cmd.CommandType = CommandType.Text;
169 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
170 {
171 da.Fill(ds, "ds");
172 }
173 }
174 }
175 catch
176 {
177
178 }
179 finally
180 {
181 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
182 {
183 conn.Close();//关闭与数据库的链接
184 }
185 }
186 }
187 return ds;
188 }
189
190 /// <summary> 执行带参数的查询SQL语句或存储过程,返回DataSet对象</summary>
191 public DataSet ExecuteQueryDataSet(string cmdText, SqlParameter[] paras)
192 {
193 DataSet ds = new DataSet();
194 using (SqlConnection conn = new SqlConnection(connectionString))
195 {
196 try
197 {
198 conn.Open();//打开数据库链接
199 using (SqlCommand cmd = new SqlCommand(cmdText, conn))
200 {
201 cmd.CommandType = CommandType.Text;
202 cmd.Parameters.AddRange(paras);
203 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
204 {
205 da.Fill(ds, "ds");
206 }
207 }
208 }
209 catch
210 {
211
212 }
213 finally
214 {
215 if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
216 {
217 conn.Close();//关闭与数据库的链接
218 }
219 }
220 }
221 return ds;
222 }
223
224 /// <summary>查询数据是否存在</summary>
225 public bool ExecuteDataIsExistByData(string sqlStr)
226 {
227 bool iss = false;
228 DataSet ds = ExecuteQueryDataSet(sqlStr);
229 for (int i = 0; i < ds.Tables.Count; i++)
230 {
231 if (ds.Tables[i].Rows.Count > 0) iss = true;
232 }
233 return iss;
234 }
235
236 /// <summary>查询数据是否存在 </summary>
237 public bool ExecuteDataIsExistByData(string sqlStr, SqlParameter[] paras)
238 {
239 bool iss = false;
240 DataSet ds = ExecuteQueryDataSet(sqlStr, paras);
241 for (int i = 0; i < ds.Tables.Count; i++)
242 {
243 if (ds.Tables[i].Rows.Count > 0) iss = true;
244 }
245 return iss;
246 }
247
248 /// <summary>查询增删改数据操作是否成功 </summary>
249 public bool ExecuteDataIsExistByInt(string sqlStr)
250 {
251 int ds = ExecuteNonQuery(sqlStr);
252 bool iss = ds > 0 ? true : false;
253 return iss;
254 }
255
256 /// <summary>查询增删改数据操作是否成功 </summary>
257 public bool ExecuteDataIsExistByInt(string sqlStr, SqlParameter[] paras)
258 {
259 int ds = ExecuteNonQuery(sqlStr, paras);
260 bool iss = ds > 0 ? true : false;
261 return iss;
262 }
263 }
264 }