C#操作MySQL資料庫
阿新 • • 發佈:2020-07-13
public MonetaryModel FindMonetaryById(uint MonetaryId)
{
string sql = "SELECT * FROM cfg_monetary WHERE MonetaryId=@MonetaryId"; MySqlParameter[] paras = new MySqlParameter[]{ new MySqlParameter("@MonetaryId", MonetaryId) }; MySqlDataReader reader = Db.ExecuteReader(sql, paras); reader.Read(); Monetary monetary = new Monetary(); monetary.MonetaryTitle = reader.GetString("MonetaryTitle"); return monetary; }
namespace Eddit2.utils
{
public static class Db
{
private static string connectString = "datasource=localhost;username=root;password=;database=skyline;charset=utf8";
public static MySqlConnection getConnect() { //MySqlConnection connect = new MySqlConnection(ConnectString()); MySqlConnection connect = new MySqlConnection(connectString); return connect; } public static int ExecuteQuery(string sql, MySqlParameter[] parameters) { /* int affectedRows = 0; MySqlConnection connect = getConnect(); connect.Open(); //using(IDbTransaction transaction = connect.BeginTransaction()) //{ using(MySqlCommand command = new MySqlCommand(sql, connect)) //using(IDbCommand command = new MySqlCommand()) { //command.Connection = connect; //command.CommandText = sql; if (parameters != null) { command.Parameters.AddRange(parameters); //command.Parameters.AddRange } //affectedRows = command.EndExecuteNonQuery(CommandBehavior.CloseConnection); affectedRows = command.ExecuteNonQuery(); } // transaction.Commit(); //} return affectedRows; */ MySqlConnection connect = getConnect(); using (MySqlCommand cmd = new MySqlCommand()) { if (connect.State != ConnectionState.Open) { connect.Open(); } MySqlTransaction transaction = connect.BeginTransaction(); try { //int affectedRow = 0; //PrepareCommand(cmd, connect, null, sql, parameters); PrepareCommand(cmd, connect, transaction, sql, parameters); int affectedRow = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); transaction.Commit(); return affectedRow; } catch (MySqlException e) { transaction.Rollback(); throw new Exception(e.Message); } finally { cmd.Dispose(); connect.Close(); } } } public static DataSet ExecuteDataSet(string sql) { MySqlConnection connect = getConnect(); connect.Open(); MySqlDataAdapter da = new MySqlDataAdapter(sql, connect); DataSet ds = new DataSet(); da.Fill(ds); connect.Close(); return ds; } public static MySqlDataReader ExecuteReader(string sql, MySqlParameter[] parameters) { MySqlConnection connect = getConnect(); connect.Open(); MySqlCommand command = new MySqlCommand(sql, connect); if (parameters != null) { command.Parameters.AddRange(parameters); } MySqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection); return reader; } //public static DataTable ExecuteScalar(string sql, System.Data.IDbDataParameter[] parameters) public static DataTable ExecuteScalar(string sql, MySqlParameter[] parameters) { MySqlConnection connect = getConnect(); connect.Open(); //using(MySqlCommand command = new MySqlCommand(sql, new MySqlConnection(ConnectString()))) using(MySqlCommand command = new MySqlCommand(sql, connect)) { if (parameters != null) { command.Parameters.AddRange(parameters); } MySqlDataAdapter adapter = new MySqlDataAdapter(command); DataTable data = new DataTable(); adapter.Fill(data); connect.Close(); return data; } } //-------------------- Internet copy -------------------------------------------- /* public static DataSet RunProcedureForDataSet(string storedProcName, IDataParameter[] parameters) { using (MySqlConnection connection = new MySqlConnection(ConnectString())) { DataSet dataSet = new DataSet(); connection.Open(); MySqlDataAdapter adapter = new MySqlDataAdapter(); adapter.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters); adapter.Fill(dataSet); connection.Close(); return dataSet; } } */ private static void PrepareCommand(MySqlCommand cmd, MySqlConnection connection, MySqlTransaction transaction, string sql, MySqlParameter[] cmdParams) { if (connection.State != ConnectionState.Open) { connection.Open(); } cmd.Connection = connection; cmd.CommandText = sql; if (transaction != null) { cmd.Transaction = transaction; } cmd.CommandType = CommandType.Text; if (cmdParams != null) { foreach (MySqlParameter para in cmdParams) { cmd.Parameters.Add(para); } } } }
}