.net mysql sqlhelper_C#实现操作MySql数据层类MysqlHelper实例

1 usingSystem;2 usingSystem.Data;3 usingSystem.Configuration;4 usingSystem.Collections.Generic;5 usingSystem.Linq;6 usingSystem.Text;7 usingSystem.Xml.Linq;8 usingMySql.Data;9 usingMySql.Data.MySqlClient;10 namespaceXX.DAL11 {12 public abstract classMySqlHelper13 {14 //数据库连接字符串

15 public static string Conn = "Database='device_manage';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true;Allow Zero Datetime=True";16

17 ///

18 ///给定连接的数据库用假设参数执行一个sql命令(不返回数据集)19 ///

20 /// 一个有效的连接字符串

21 /// 命令类型(存储过程, 文本, 等等)

22 /// 存储过程名称或者sql命令语句

23 /// 执行命令所用参数的集合

24 /// 执行命令所影响的行数

25 public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)26 {27 MySqlCommand cmd = newMySqlCommand();28 using (MySqlConnection conn = newMySqlConnection(connectionString))29 {30 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);31 int val =cmd.ExecuteNonQuery();32 cmd.Parameters.Clear();33 returnval;34 }35 }36

37 ///

38 ///用现有的数据库连接执行一个sql命令(不返回数据集)39 ///

40 /// 一个现有的数据库连接

41 /// 命令类型(存储过程, 文本, 等等)

42 /// 存储过程名称或者sql命令语句

43 /// 执行命令所用参数的集合

44 /// 执行命令所影响的行数

45 public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)46 {47 MySqlCommand cmd = newMySqlCommand();48 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);49 int val =cmd.ExecuteNonQuery();50 cmd.Parameters.Clear();51 returnval;52 }53

54 ///

55 ///使用现有的SQL事务执行一个sql命令(不返回数据集)56 ///

57 ///

58 ///举例:59 ///int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));60 ///

61 /// 一个现有的事务

62 /// 命令类型(存储过程, 文本, 等等)

63 /// 存储过程名称或者sql命令语句

64 /// 执行命令所用参数的集合

65 /// 执行命令所影响的行数

66 public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)67 {68 MySqlCommand cmd = newMySqlCommand();69 PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);70 int val =cmd.ExecuteNonQuery();71 cmd.Parameters.Clear();72 returnval;73 }74

75 ///

76 ///用执行的数据库连接执行一个返回数据集的sql命令77 ///

78 ///

79 ///举例:80 ///MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));81 ///

82 /// 一个有效的连接字符串

83 /// 命令类型(存储过程, 文本, 等等)

84 /// 存储过程名称或者sql命令语句

85 /// 执行命令所用参数的集合

86 /// 包含结果的读取器

87 public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)88 {89 //创建一个MySqlCommand对象

90 MySqlCommand cmd = newMySqlCommand();91 //创建一个MySqlConnection对象

92 MySqlConnection conn = newMySqlConnection(connectionString);93 //在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,94 //因此commandBehaviour.CloseConnection 就不会执行

95 try

96 {97 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数

98 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);99 //调用 MySqlCommand 的 ExecuteReader 方法

100 MySqlDataReader reader =cmd.ExecuteReader(CommandBehavior.CloseConnection);101 //清除参数

102 cmd.Parameters.Clear();103 returnreader;104 }105 catch

106 {107 //关闭连接,抛出异常

108 conn.Close();109 throw;110 }111 }112

113 ///

114 ///返回DataSet115 ///

116 /// 一个有效的连接字符串

117 /// 命令类型(存储过程, 文本, 等等)

118 /// 存储过程名称或者sql命令语句

119 /// 执行命令所用参数的集合

120 ///

121 public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)122 {123 //创建一个MySqlCommand对象

124 MySqlCommand cmd = newMySqlCommand();125 //创建一个MySqlConnection对象

126 MySqlConnection conn = newMySqlConnection(connectionString);127 //在这里我们用一个try/catch结构执行sql文本命令/存储过程,128 //因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,

129 try

130 {131 //调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数

132 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);133 //调用 MySqlCommand 的 ExecuteReader 方法

134 MySqlDataAdapter adapter = newMySqlDataAdapter();135 adapter.SelectCommand =cmd;136 DataSet ds = newDataSet();137 adapter.Fill(ds);138 //清除参数

139 cmd.Parameters.Clear();140 conn.Close();141 returnds;142 }143 catch(Exception e)144 {145 throwe;146 }147 }148

149 ///

150 ///用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列151 ///

152 ///

153 ///例如:154 ///Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));155 ///

156 ///一个有效的连接字符串

157 /// 命令类型(存储过程, 文本, 等等)

158 /// 存储过程名称或者sql命令语句

159 /// 执行命令所用参数的集合

160 /// 用 Convert.To{Type}把类型转换为想要的

161 public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)162 {163 MySqlCommand cmd = newMySqlCommand();164 using (MySqlConnection connection = newMySqlConnection(connectionString))165 {166 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);167 object val =cmd.ExecuteScalar();168 cmd.Parameters.Clear();169 returnval;170 }171 }172

173 ///

174 ///用指定的数据库连接执行一个命令并返回一个数据集的第一列175 ///

176 ///

177 ///例如:178 ///Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));179 ///

180 /// 一个存在的数据库连接

181 /// 命令类型(存储过程, 文本, 等等)

182 /// 存储过程名称或者sql命令语句

183 /// 执行命令所用参数的集合

184 /// 用 Convert.To{Type}把类型转换为想要的

185 public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, paramsMySqlParameter[] commandParameters)186 {187 MySqlCommand cmd = newMySqlCommand();188 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);189 object val =cmd.ExecuteScalar();190 cmd.Parameters.Clear();191 returnval;192 }193

194 ///

195 ///准备执行一个命令196 ///

197 /// sql命令

198 /// OleDb连接

199 /// OleDb事务

200 /// 命令类型例如 存储过程或者文本

201 /// 命令文本,例如:Select * from Products

202 /// 执行命令的参数

203 private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, stringcmdText, MySqlParameter[] cmdParms)204 {205 if (conn.State !=ConnectionState.Open)206 conn.Open();207 cmd.Connection =conn;208 cmd.CommandText =cmdText;209 if (trans != null)210 cmd.Transaction =trans;211 cmd.CommandType =cmdType;212 if (cmdParms != null)213 {214 foreach (MySqlParameter parm incmdParms)215 cmd.Parameters.Add(parm);216 }217 }218 }219 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值