3 using ByteFX.Data.MySqlClient;
5 namespace ByteFX.Data.MySqlClient
8 /// Summary description for MySqlHelper.
10 public sealed class MySqlHelper
12 // this class provides only static methods
17 #region ExecuteNonQuery
18 public static int ExecuteNonQuery( MySqlConnection connection, string commandText, params MySqlParameter[] commandParameters )
20 //create a command and prepare it for execution
21 MySqlCommand cmd = new MySqlCommand();
22 cmd.Connection = connection;
23 cmd.CommandText = commandText;
24 cmd.CommandType = CommandType.Text;
26 if (commandParameters != null)
27 foreach (MySqlParameter p in commandParameters)
28 cmd.Parameters.Add( p );
30 int result = cmd.ExecuteNonQuery();
31 cmd.Parameters.Clear();
36 public static int ExecuteNonQuery( string connectionString, string commandText, params MySqlParameter[] parms )
38 //create & open a SqlConnection, and dispose of it after we are done.
39 using (MySqlConnection cn = new MySqlConnection(connectionString))
43 //call the overload that takes a connection in place of the connection string
44 return ExecuteNonQuery(cn, commandText, parms );
49 #region ExecuteDataSet
50 public static DataRow ExecuteDatarow( string connectionString, string commandText, params MySqlParameter[] parms )
52 DataSet ds = ExecuteDataset( connectionString, commandText, parms );
53 if (ds == null) return null;
54 if (ds.Tables.Count == 0) return null;
55 if (ds.Tables[0].Rows.Count == 0) return null;
56 return ds.Tables[0].Rows[0];
59 public static DataSet ExecuteDataset(string connectionString, string commandText)
61 //pass through the call providing null for the set of SqlParameters
62 return ExecuteDataset(connectionString, commandText, (MySqlParameter[])null);
65 public static DataSet ExecuteDataset(string connectionString, string commandText, params MySqlParameter[] commandParameters)
67 //create & open a SqlConnection, and dispose of it after we are done.
68 using (MySqlConnection cn = new MySqlConnection(connectionString))
72 //call the overload that takes a connection in place of the connection string
73 return ExecuteDataset(cn, commandText, commandParameters);
77 public static DataSet ExecuteDataset(MySqlConnection connection, string commandText)
79 //pass through the call providing null for the set of SqlParameters
80 return ExecuteDataset(connection, commandText, (MySqlParameter[])null);
84 public static DataSet ExecuteDataset(MySqlConnection connection, string commandText, params MySqlParameter[] commandParameters)
86 //create a command and prepare it for execution
87 MySqlCommand cmd = new MySqlCommand();
88 cmd.Connection = connection;
89 cmd.CommandText = commandText;
90 cmd.CommandType = CommandType.Text;
92 if (commandParameters != null)
93 foreach (MySqlParameter p in commandParameters)
94 cmd.Parameters.Add( p );
96 //create the DataAdapter & DataSet
97 MySqlDataAdapter da = new MySqlDataAdapter(cmd);
98 DataSet ds = new DataSet();
100 //fill the DataSet using default values for DataTable names, etc.
103 // detach the MySqlParameters from the command object, so they can be used again.
104 cmd.Parameters.Clear();
110 public static void UpdateDataSet( string connectionString, string commandText, DataSet ds, string tablename )
112 MySqlConnection cn = new MySqlConnection( connectionString );
114 MySqlDataAdapter da = new MySqlDataAdapter( commandText, cn );
115 MySqlCommandBuilder cb = new MySqlCommandBuilder( da );
116 da.Update( ds, tablename );
122 #region ExecuteDataReader
123 private static MySqlDataReader ExecuteReader(MySqlConnection connection, MySqlTransaction transaction, string commandText, MySqlParameter[] commandParameters, bool ExternalConn )
125 //create a command and prepare it for execution
126 MySqlCommand cmd = new MySqlCommand();
127 cmd.Connection = connection;
128 cmd.Transaction = transaction;
129 cmd.CommandText = commandText;
130 cmd.CommandType = CommandType.Text;
132 if (commandParameters != null)
133 foreach (MySqlParameter p in commandParameters)
134 cmd.Parameters.Add( p );
139 // call ExecuteReader with the appropriate CommandBehavior
142 dr = cmd.ExecuteReader();
146 dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
149 // detach the SqlParameters from the command object, so they can be used again.
150 cmd.Parameters.Clear();
155 public static MySqlDataReader ExecuteReader(string connectionString, string commandText)
157 //pass through the call providing null for the set of SqlParameters
158 return ExecuteReader(connectionString, commandText, (MySqlParameter[])null);
161 public static MySqlDataReader ExecuteReader(string connectionString, string commandText, params MySqlParameter[] commandParameters)
163 //create & open a SqlConnection
164 MySqlConnection cn = new MySqlConnection(connectionString);
169 //call the private overload that takes an internally owned connection in place of the connection string
170 return ExecuteReader(cn, null, commandText, commandParameters, false );
174 //if we fail to return the SqlDatReader, we need to close the connection ourselves
181 #region ExecuteScalar
182 public static object ExecuteScalar(string connectionString, string commandText)
184 //pass through the call providing null for the set of MySqlParameters
185 return ExecuteScalar(connectionString, commandText, (MySqlParameter[])null);
188 public static object ExecuteScalar(string connectionString, string commandText, params MySqlParameter[] commandParameters)
190 //create & open a SqlConnection, and dispose of it after we are done.
191 using (MySqlConnection cn = new MySqlConnection(connectionString))
195 //call the overload that takes a connection in place of the connection string
196 return ExecuteScalar(cn, commandText, commandParameters);
200 public static object ExecuteScalar(MySqlConnection connection, string commandText)
202 //pass through the call providing null for the set of MySqlParameters
203 return ExecuteScalar(connection, commandText, (MySqlParameter[])null);
206 public static object ExecuteScalar(MySqlConnection connection, string commandText, params MySqlParameter[] commandParameters)
208 //create a command and prepare it for execution
209 MySqlCommand cmd = new MySqlCommand();
210 cmd.Connection = connection;
211 cmd.CommandText = commandText;
212 cmd.CommandType = CommandType.Text;
214 if (commandParameters != null)
215 foreach (MySqlParameter p in commandParameters)
216 cmd.Parameters.Add( p );
218 //execute the command & return the results
219 object retval = cmd.ExecuteScalar();
221 // detach the SqlParameters from the command object, so they can be used again.
222 cmd.Parameters.Clear();