首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 一个针对SQLServer操作的封装类
【标  题】:一个针对SQLServer操作的封装类
【关键字】:SQLServer
【来  源】:http://blog.csdn.net/juejue1984/archive/2006/07/21/952867.aspx

一个针对SQLServer操作的封装类

1using System;
  2using System.Data.SqlClient;
  3using System.Data;
  4using System.IO;
  5using System.Windows.Forms;
  6using System.Collections;
  7namespace SQL
  8{
  9    /// <summary>
10    /// 作    者:刘决决
11    /// 时    间:2006-7-21
12    /// 用    途:封装针对SQL Server的所有操作
13    /// 修 改 人:
14    /// 修改日期:
15    /// </summary>

16    public class SQL
17    {
18        #region 变量和结构
19        public static SqlConnection Connection  = null; //数据库连接对象
20        public static SqlTransaction Transaction = null; //数据库事务
21        public static bool IsInTransaction = false; //是否在事务中
22
23        //ParameterEx结构
24        public struct ParameterEx
25        {
26            /// <summary>
27            /// 参数名称
28            /// </summary>

29            public string Text;
30            /// <summary>
31            /// 参数值
32            /// </summary>

33            public object Value;
34            /// <summary>
35            /// 参数数据类型
36            /// </summary>

37            public object DataType;
38            /// <summary>
39            /// 参数传入传出方向
40            /// </summary>

41            public object ParaDirection;
42            /// <summary>
43            /// 参数大小
44            /// </summary>

45            public object ParaSize;
46        }

47
48
49        #endregion

50
51        #region 构造函数
52        public  SQL()
53        {
54            string ConnectionText; //Store The Connection Sentence for Database
55            if (Connection == null)
56            {
57                ConnectionText = ReadConn();
58                Connection = new SqlConnection( ConnectionText );
59                try
60                {
61                    Connection.Open(); //Open Database
62                }

63                catch(Exception e)
64                {
65                    Connection = null;
66                    MessageBox.Show("连接数据库失败!\n错误信息:" + e.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
67                }

68            }

69        }

70        #endregion

71
72        #region 读写数据库连接字符串
73
74        //写连接字符串
75        public static void WriteConn(string conn, string conn2, string conn3, string conn4)
76        {
77            conn = Crypt.EncryptAndDecrypt.Encryption( conn );
78            conn2 = Crypt.EncryptAndDecrypt.Encryption( conn2 );
79            conn3 = Crypt.EncryptAndDecrypt.Encryption( conn3 );
80            conn4 = Crypt.EncryptAndDecrypt.Encryption( conn4 );
81            Crypt.EncryptAndDecrypt.WriteIniString("ConnectionCofig", "Server", conn, System.IO.Directory.GetCurrentDirectory()+ "\\DatabaseConnection.ini");
82            Crypt.EncryptAndDecrypt.WriteIniString("ConnectionCofig", "Database", conn2, System.IO.Directory.GetCurrentDirectory()+ "\\DatabaseConnection.ini");
83            Crypt.EncryptAndDecrypt.WriteIniString("ConnectionCofig", "User ID", conn3, System.IO.Directory.GetCurrentDirectory()+ "\\DatabaseConnection.ini");
84            Crypt.EncryptAndDecrypt.WriteIniString("ConnectionCofig", "Password", conn4, System.IO.Directory.GetCurrentDirectory()+ "\\DatabaseConnection.ini");
85        }

86        //读连接字符串
87        public static string ReadConn()
88        {
89            string conns = Crypt.EncryptAndDecrypt.Decryption(Crypt.EncryptAndDecrypt.GetIniString("ConnectionCofig", "Server", Directory.GetCurrentDirectory ()+ "\\DatabaseConnection.ini"));
90            string conns2 = Crypt.EncryptAndDecrypt.Decryption(Crypt.EncryptAndDecrypt.GetIniString("ConnectionCofig", "Database", Directory.GetCurrentDirectory ()+ "\\DatabaseConnection.ini"));
91            string conns3 = Crypt.EncryptAndDecrypt.Decryption(Crypt.EncryptAndDecrypt.GetIniString("ConnectionCofig", "User ID", Directory.GetCurrentDirectory ()+ "\\DatabaseConnection.ini"));
92            string conns4 = Crypt.EncryptAndDecrypt.Decryption(Crypt.EncryptAndDecrypt.GetIniString("ConnectionCofig", "Password", Directory.GetCurrentDirectory ()+ "\\DatabaseConnection.ini"));
93            string str = "Server = " + conns + ";Database = " + conns2 + ";User ID = " + conns3 + ";Password = " + conns4 + ";";
94            return str;
95        }

96        #endregion

97
98        #region 设置和回传参数
99        //设置参数到SqlCommand
100        public static  void SetParameters(SqlCommand cmd, ParameterEx[] parameters)
101        {
102            if(parameters != null)
103            {
104                for(int i = 0;i < parameters.GetLength(0); i++)
105                {
106                    if ((ParameterDirection)parameters[i].ParaDirection == ParameterDirection.Output)
107                    {
108                        if (parameters[i].ParaSize == null)
109                        {
110                            cmd.Parameters.Add(new SqlParameter((string)parameters[i].Text, (SqlDbType)parameters[i].DataType)).Direction=(ParameterDirection)parameters[i].ParaDirection;
111                        }

112                        else
113                        {
114                            cmd.Parameters.Add(new SqlParameter((string)parameters[i].Text, (SqlDbType)parameters[i].DataType,(int)parameters[i].ParaSize)).Direction=(ParameterDirection)parameters[i].ParaDirection;
115                        }

116                         
117                    }

118                    else
119                    {
120                        if (parameters[i].ParaSize == null)
121                        {
122                            cmd.Parameters.Add(new SqlParameter((string)parameters[i].Text, parameters[i].Value )).Direction = ParameterDirection.Input ;
123                        }

124                        else
125                        {
126                            SqlParameter op0 = new SqlParameter((string)parameters[i].Text,(SqlDbType)parameters[i].DataType,(int)parameters[i].ParaSize);
127                            op0.Value = parameters[i].Value;
128                            cmd.Parameters.Add(op0);
129                        }

130                    }

131                }

132            }

133        }

134
135        //回传参数到SqlCommand
136        public static  void ReturnParameters(SqlCommand cmd, ParameterEx[] parameters)
137        {
138            if(parameters != null)
139            {
140                for(int i = 0;i < parameters.GetLength(0); i++)        //回传参数值
141                {
142                    if ((ParameterDirection)parameters[i].ParaDirection == ParameterDirection.Output)
143                    {
144                        if ((SqlDbType)parameters[i].DataType != SqlDbType.UniqueIdentifier )
145                        {
146                            parameters[i].Value = cmd.Parameters[i].Value;
147                        }

148                    }

149                }

150            }

151        }

152
153
154        #endregion

155
156        //打开数据库连接
157        public static  int Open() 
158        {
159            if (Connection == null)
160