1
using System;
2
using System.Data.SqlClient;
3
using System.Data;
4
using System.IO;
5
using System.Windows.Forms;
6
using System.Collections;
7
namespace 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