Sqlhelper

1.using System;   
2.using System.Collections.Generic;   
3.using System.Text;   
4.using System.Collections;   
5.using System.Data;   
6.using System.Data.SqlClient;   
7.using System.Configuration;   
8.namespace HelloWinForm.DBUtility   
9.{   
10.    class SQLHelper   
11.    { 
12.        #region 通用方法   
13.        // 数据连接池   
14.        private SqlConnection con;   
15.        ///

   
16.        /// 返回数据库连接字符串   
17.        ///
   
18.        ///    
19.        public static String GetSqlConnection()   
20.        {   
21.            String conn = ConfigurationManager.AppSettings["connectionString"].ToString();   
22.            return conn;   
23.        } 
24.        #endregion 
25.        #region 执行sql字符串   
26.        ///    
27.        /// 执行不带参数的SQL语句   
28.        ///
   
29.        ///    
30.        ///    
31.        public static int ExecuteSql(String Sqlstr)   
32.        {   
33.            String ConnStr = GetSqlConnection();   
34.            using (SqlConnection conn = new SqlConnection(ConnStr))   
35.            {   
36.                SqlCommand cmd = new SqlCommand();   
37.                cmd.Connection = conn;   
38.                cmd.CommandText = Sqlstr;   
39.                conn.Open();   
40.                cmd.ExecuteNonQuery();   
41.                conn.Close();   
42.                return 1;   
43.            }   
44.        }   
45.        ///    
46.        /// 执行带参数的SQL语句   
47.        ///
   
48.        /// SQL语句   
49.        /// 参数对象数组   
50.        ///    
51.        public static int ExecuteSql(String Sqlstr, SqlParameter[] param)   
52.        {   
53.            String ConnStr = GetSqlConnection();   
54.            using (SqlConnection conn = new SqlConnection(ConnStr))   
55.            {   
56.                SqlCommand cmd = new SqlCommand();   
57.                cmd.Connection = conn;   
58.                cmd.CommandText = Sqlstr;   
59.                cmd.Parameters.AddRange(param);   
60.                conn.Open();   
61.                cmd.ExecuteNonQuery();   
62.                conn.Close();   
63.                return 1;   
64.            }   
65.        }   
66.        ///    
67.        /// 返回DataReader   
68.        ///
   
69.        ///    
70.        ///    
71.        public static SqlDataReader ExecuteReader(String Sqlstr)   
72.        {   
73.            String ConnStr = GetSqlConnection();   
74.            SqlConnection conn = new SqlConnection(ConnStr);//返回DataReader时,是不可以用using()的   
75.            try 
76.            {   
77.                SqlCommand cmd = new SqlCommand();   
78.                cmd.Connection = conn;   
79.                cmd.CommandText = Sqlstr;   
80.                conn.Open();   
81.                return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);//关闭关联的Connection   
82.            }   
83.            catch //(Exception ex)   
84.            {   
85.                return null;   
86.            }   
87.        }   
88.        ///    
89.        /// 执行SQL语句并返回数据表   
90.        ///
   
91.        /// SQL语句   
92.        ///    
93.        public static DataTable ExecuteDt(String Sqlstr)   
94.        {   
95.            String ConnStr = GetSqlConnection();   
96.            using (SqlConnection conn = new SqlConnection(ConnStr))   
97.            {   
98.                SqlDataAdapter da = new SqlDataAdapter(Sqlstr, conn);   
99.                DataTable dt = new DataTable();   
100.                conn.Open();   
101.                da.Fill(dt);   
102.                conn.Close();   
103.                return dt;   
104.            }   
105.        }   
106.        ///    
107.        /// 执行SQL语句并返回DataSet   
108.        ///
   
109.        /// SQL语句   
110.        ///    
111.        public static DataSet ExecuteDs(String Sqlstr)   
112.        {   
113.            String ConnStr = GetSqlConnection();   
114.            using (SqlConnection conn = new SqlConnection(ConnStr))   
115.            {   
116.                SqlDataAdapter da = new SqlDataAdapter(Sqlstr, conn);   
117.                DataSet ds = new DataSet();   
118.                conn.Open();   
119.                da.Fill(ds);   
120.                conn.Close();   
121.                return ds;   
122.            }   
123.        } 
124.        #endregion 
125.        #region 操作存储过程   
126.        ///    
127.        /// 运行存储过程(已重载)   
128.        ///
   
129.        /// 存储过程的名字   
130.        /// 存储过程的返回值   
131.        public int RunProc(string procName)   
132.        {   
133.            SqlCommand cmd = CreateCommand(procName, null);   
134.            cmd.ExecuteNonQuery();   
135.            this.Close();   
136.            return (int)cmd.Parameters["ReturnValue"].Value;   
137.        }   
138.        ///    
139.        /// 运行存储过程(已重载)   
140.        ///
   
141.        /// 存储过程的名字   
142.        /// 存储过程的输入参数列表   
143.        /// 存储过程的返回值   
144.        public int RunProc(string procName, SqlParameter[] prams)   
145.        {   
146.            SqlCommand cmd = CreateCommand(procName, prams);   
147.            cmd.ExecuteNonQuery();   
148.            this.Close();   
149.            return (int)cmd.Parameters[0].Value;   
150.        }   
151.        ///    
152.        /// 运行存储过程(已重载)   
153.        ///
   
154.        /// 存储过程的名字   
155.        /// 结果集   
156.        public void RunProc(string procName, out SqlDataReader dataReader)   
157.        {   
158.            SqlCommand cmd = CreateCommand(procName, null);   
159.            dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);   
160.        }   
161.        ///    
162.        /// 运行存储过程(已重载)   
163.        ///
   
164.        /// 存储过程的名字   
165.        /// 存储过程的输入参数列表   
166.        /// 结果集   
167.        public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)   
168.        {   
169.            SqlCommand cmd = CreateCommand(procName, prams);   
170.            dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);   
171.        }   
172.        ///    
173.        /// 创建Command对象用于访问存储过程   
174.        ///
   
175.        /// 存储过程的名字   
176.        /// 存储过程的输入参数列表   
177.        /// Command对象   
178.        private SqlCommand CreateCommand(string procName, SqlParameter[] prams)   
179.        {   
180.            // 确定连接是打开的   
181.            Open();   
182.            //command = new SqlCommand( sprocName, new SqlConnection( ConfigManager.DALConnectionString ) );   
183.            SqlCommand cmd = new SqlCommand(procName, con);   
184.            cmd.CommandType = CommandType.StoredProcedure;   
185.            // 添加存储过程的输入参数列表   
186.            if (prams != null)   
187.            {   
188.                foreach (SqlParameter parameter in prams)   
189.                    cmd.Parameters.Add(parameter);   
190.            }   
191.            // 返回Command对象   
192.            return cmd;   
193.        }   
194.        ///    
195.        /// 创建输入参数   
196.        ///
   
197.        /// 参数名   
198.        /// 参数类型   
199.        /// 参数大小   
200.        /// 参数值   
201.        /// 新参数对象   
202.        public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)   
203.        {   
204.            return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);   
205.        }   
206.        ///    
207.        /// 创建输出参数   
208.        ///
   
209.        /// 参数名   
210.        /// 参数类型   
211.        /// 参数大小   
212.        /// 新参数对象   
213.        public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)   
214.        {   
215.            return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);   
216.        }   
217.        ///    
218.        /// 创建存储过程参数   
219.        ///
   
220.        /// 参数名   
221.        /// 参数类型   
222.        /// 参数大小   
223.        /// 参数的方向(输入/输出)   
224.        /// 参数值   
225.        /// 新参数对象   
226.        public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)   
227.        {   
228.            SqlParameter param;   
229.            if (Size > 0)   
230.            {   
231.                param = new SqlParameter(ParamName, DbType, Size);   
232.            }   
233.            else 
234.            {   
235.                param = new SqlParameter(ParamName, DbType);   
236.            }   
237.            param.Direction = Direction;   
238.            if (!(Direction == ParameterDirection.Output && Value == null))   
239.            {   
240.                param.Value = Value;   
241.            }   
242.            return param;   
243.        } 
244.        #endregion 
245.        #region 数据库连接和关闭   
246.        ///    
247.        /// 打开连接池   
248.        ///
   
249.        private void Open()   
250.        {   
251.            // 打开连接池   
252.            if (con == null)   
253.            {   
254.                //这里不仅需要using System.Configuration;还要在引用目录里添加   
255.                con = new SqlConnection(GetSqlConnection());   
256.                con.Open();   
257.            }   
258.        }   
259.        ///    
260.        /// 关闭连接池   
261.        ///
   
262.        public void Close()   
263.        {   
264.            if (con != null)   
265.                con.Close();   
266.        }   
267.        ///    
268.        /// 释放连接池   
269.        ///
   
270.        public void Dispose()   
271.        {   
272.            // 确定连接已关闭   
273.            if (con != null)   
274.            {   
275.                con.Dispose();   
276.                con = null;   
277.            }   
278.        } 
279.        #endregion   
280.    }   
281.}

你可能感兴趣的:(技术备忘记录)