C#連接Mysql數據庫 MysqlHelper.cs文件


mysql.data.dll下載_c#連接mysql必要插件
mysql.data.dll是C#操作MYSQL的驅動文件,是c#連接mysql必要插件,使c#語言更簡潔的操作mysql數據庫。當你的電腦彈出提示“丟失mysql.data.dll”或“無法找到mysql.data.dll”等錯誤問題,請下載本站為你提供的dll文件,使用它可以幫助用戶解決上述問題。 
下載后引用到項目文件目錄。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;

namespace BMS.DAL

{

public class MysqlHelper1
{
//數據庫連接字符串
public static string Conn = "Database='bms';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true"; //XXX的為修改項

/// <summary>
/// 給定連接的數據庫用假設參數執行一個sql命令(不返回數據集)
/// </summary>
/// <param name="connectionString">一個有效的連接字符串</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>執行命令所影響的行數</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

MySqlCommand cmd = new MySqlCommand();

using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}

/// <summary>
/// 用現有的數據庫連接執行一個sql命令(不返回數據集)
/// </summary>
/// <param name="connection">一個現有的數據庫連接</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>執行命令所影響的行數</returns>
public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

MySqlCommand cmd = new MySqlCommand();

PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
//cmd.Parameters.Clear();
return val;
}

/// <summary>
///使用現有的SQL事務執行一個sql命令(不返回數據集)
/// </summary>
/// <remarks>
///舉例:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一個現有的事務</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>執行命令所影響的行數</returns>
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}

/// <summary>
/// 用執行的數據庫連接執行一個返回數據集的sql命令
/// </summary>
/// <remarks>
/// 舉例:
/// MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一個有效的連接字符串</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>包含結果的讀取器</returns>
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//創建一個MySqlCommand對象
MySqlCommand cmd = new MySqlCommand();
//創建一個MySqlConnection對象
MySqlConnection conn = new MySqlConnection(connectionString);

//在這里我們用一個try/catch結構執行sql文本命令/存儲過程,因為如果這個方法產生一個異常我們要關閉連接,因為沒有讀取器存在,
//因此commandBehaviour.CloseConnection 就不會執行
try
{
//調用 PrepareCommand 方法,對 MySqlCommand 對象設置參數
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//調用 MySqlCommand 的 ExecuteReader 方法
MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//清除參數
cmd.Parameters.Clear();
return reader;
}
catch
{
//關閉連接,拋出異常
conn.Close();
throw;
}
}

/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="connectionString">一個有效的連接字符串</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns></returns>
public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//創建一個MySqlCommand對象
MySqlCommand cmd = new MySqlCommand();
//創建一個MySqlConnection對象
MySqlConnection conn = new MySqlConnection(connectionString);

//在這里我們用一個try/catch結構執行sql文本命令/存儲過程,因為如果這個方法產生一個異常我們要關閉連接,因為沒有讀取器存在,

try
{
//調用 PrepareCommand 方法,對 MySqlCommand 對象設置參數
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//調用 MySqlCommand 的 ExecuteReader 方法
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();

adapter.Fill(ds);
//清除參數
cmd.Parameters.Clear();
conn.Close();
return ds;
}
catch (Exception e)
{
throw e;
}
}


public static DataTable GetDataTable(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//創建一個MySqlCommand對象
MySqlCommand cmd = new MySqlCommand();
//創建一個MySqlConnection對象
MySqlConnection conn = new MySqlConnection(connectionString);

//在這里我們用一個try/catch結構執行sql文本命令/存儲過程,因為如果這個方法產生一個異常我們要關閉連接,因為沒有讀取器存在,

try
{
//調用 PrepareCommand 方法,對 MySqlCommand 對象設置參數
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//調用 MySqlCommand 的 ExecuteReader 方法
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataTable ds = new DataTable();

adapter.Fill(ds);
//清除參數
cmd.Parameters.Clear();
conn.Close();
return ds;
}
catch (Exception e)
{
throw e;
}
}


/// <summary>
/// 用指定的數據庫連接字符串執行一個命令並返回一個數據集的第一列
/// </summary>
/// <remarks>
///例如:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
///<param name="connectionString">一個有效的連接字符串</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>用 Convert.To{Type}把類型轉換為想要的 </returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();

using (MySqlConnection connection = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}

/// <summary>
/// 用指定的數據庫連接執行一個命令並返回一個數據集的第一列
/// </summary>
/// <remarks>
/// 例如:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connection">一個存在的數據庫連接</param>
/// <param name="cmdType">命令類型(存儲過程, 文本, 等等)</param>
/// <param name="cmdText">存儲過程名稱或者sql命令語句</param>
/// <param name="commandParameters">執行命令所用參數的集合</param>
/// <returns>用 Convert.To{Type}把類型轉換為想要的 </returns>
public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{

MySqlCommand cmd = new MySqlCommand();

PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}

 


/// <summary>
/// 准備執行一個命令
/// </summary>
/// <param name="cmd">sql命令</param>
/// <param name="conn">OleDb連接</param>
/// <param name="trans">OleDb事務</param>
/// <param name="cmdType">命令類型例如 存儲過程或者文本</param>
/// <param name="cmdText">命令文本,例如:Select * from Products</param>
/// <param name="cmdParms">執行命令的參數</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{

if (conn.State != ConnectionState.Open)
conn.Open();

cmd.Connection = conn;
cmd.CommandText = cmdText;

if (trans != null)
cmd.Transaction = trans;

cmd.CommandType = cmdType;

if (cmdParms != null)

{

foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM