最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper實(shí)例

 更新時(shí)間:2015年04月25日 16:05:20   作者:gogo  
這篇文章主要介紹了C#實(shí)現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper,實(shí)例分析了C#操作MySQL的常用技巧,并將其封裝入一個(gè)類中以方便調(diào)用,需要的朋友可以參考下

本文實(shí)例講述了C#實(shí)現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper。分享給大家供大家參考。具體如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace VideoWorks.ITmanage.DAL
{
 public abstract class MySqlHelper
 {
  //數(shù)據(jù)庫連接字符串
  public static string Conn = "Database='device_manage';Data Source='localhost';User Id='root';Password='123456';charset='utf8';pooling=true;Allow Zero Datetime=True";
  /// <summary>
  /// 給定連接的數(shù)據(jù)庫用假設(shè)參數(shù)執(zhí)行一個(gè)sql命令(不返回?cái)?shù)據(jù)集)
  /// </summary>
  /// <param name="connectionString">一個(gè)有效的連接字符串</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>執(zhí)行命令所影響的行數(shù)</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>
  /// 用現(xiàn)有的數(shù)據(jù)庫連接執(zhí)行一個(gè)sql命令(不返回?cái)?shù)據(jù)集)
  /// </summary>
  /// <param name="connection">一個(gè)現(xiàn)有的數(shù)據(jù)庫連接</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>執(zhí)行命令所影響的行數(shù)</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>
  ///使用現(xiàn)有的SQL事務(wù)執(zhí)行一個(gè)sql命令(不返回?cái)?shù)據(jù)集)
  /// </summary>
  /// <remarks>
  ///舉例:
  /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  /// </remarks>
  /// <param name="trans">一個(gè)現(xiàn)有的事務(wù)</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>執(zhí)行命令所影響的行數(shù)</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>
  /// 用執(zhí)行的數(shù)據(jù)庫連接執(zhí)行一個(gè)返回?cái)?shù)據(jù)集的sql命令
  /// </summary>
  /// <remarks>
  /// 舉例:
  /// MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  /// </remarks>
  /// <param name="connectionString">一個(gè)有效的連接字符串</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>包含結(jié)果的讀取器</returns>
  public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  {
   //創(chuàng)建一個(gè)MySqlCommand對(duì)象
   MySqlCommand cmd = new MySqlCommand();
   //創(chuàng)建一個(gè)MySqlConnection對(duì)象
   MySqlConnection conn = new MySqlConnection(connectionString);
   //在這里我們用一個(gè)try/catch結(jié)構(gòu)執(zhí)行sql文本命令/存儲(chǔ)過程,因?yàn)槿绻@個(gè)方法產(chǎn)生一個(gè)異常我們要關(guān)閉連接,因?yàn)闆]有讀取器存在,
   //因此commandBehaviour.CloseConnection 就不會(huì)執(zhí)行
   try
   {
    //調(diào)用 PrepareCommand 方法,對(duì) MySqlCommand 對(duì)象設(shè)置參數(shù)
    PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
    //調(diào)用 MySqlCommand 的 ExecuteReader 方法
    MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    //清除參數(shù)
    cmd.Parameters.Clear();
    return reader;
   }
   catch
   {
    //關(guān)閉連接,拋出異常
    conn.Close();
    throw;
   }
  }
  /// <summary>
  /// 返回DataSet
  /// </summary>
  /// <param name="connectionString">一個(gè)有效的連接字符串</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns></returns>
  public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
  {
   //創(chuàng)建一個(gè)MySqlCommand對(duì)象
   MySqlCommand cmd = new MySqlCommand();
   //創(chuàng)建一個(gè)MySqlConnection對(duì)象
   MySqlConnection conn = new MySqlConnection(connectionString);
   //在這里我們用一個(gè)try/catch結(jié)構(gòu)執(zhí)行sql文本命令/存儲(chǔ)過程,
   //因?yàn)槿绻@個(gè)方法產(chǎn)生一個(gè)異常我們要關(guān)閉連接,因?yàn)闆]有讀取器存在,
   try
   {
    //調(diào)用 PrepareCommand 方法,對(duì) MySqlCommand 對(duì)象設(shè)置參數(shù)
    PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
    //調(diào)用 MySqlCommand 的 ExecuteReader 方法
    MySqlDataAdapter adapter = new MySqlDataAdapter();
    adapter.SelectCommand = cmd;
    DataSet ds = new DataSet();
    adapter.Fill(ds);
    //清除參數(shù)
    cmd.Parameters.Clear();
    conn.Close();
    return ds;
   }
   catch (Exception e)
   {
    throw e;
   }
  }
  /// <summary>
  /// 用指定的數(shù)據(jù)庫連接字符串執(zhí)行一個(gè)命令并返回一個(gè)數(shù)據(jù)集的第一列
  /// </summary>
  /// <remarks>
  ///例如:
  /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  /// </remarks>
  ///<param name="connectionString">一個(gè)有效的連接字符串</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>用 Convert.To{Type}把類型轉(zhuǎn)換為想要的 </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>
  /// 用指定的數(shù)據(jù)庫連接執(zhí)行一個(gè)命令并返回一個(gè)數(shù)據(jù)集的第一列
  /// </summary>
  /// <remarks>
  /// 例如:
  /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
  /// </remarks>
  /// <param name="connection">一個(gè)存在的數(shù)據(jù)庫連接</param>
  /// <param name="cmdType">命令類型(存儲(chǔ)過程, 文本, 等等)</param>
  /// <param name="cmdText">存儲(chǔ)過程名稱或者sql命令語句</param>
  /// <param name="commandParameters">執(zhí)行命令所用參數(shù)的集合</param>
  /// <returns>用 Convert.To{Type}把類型轉(zhuǎn)換為想要的 </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>
  /// 準(zhǔn)備執(zhí)行一個(gè)命令
  /// </summary>
  /// <param name="cmd">sql命令</param>
  /// <param name="conn">OleDb連接</param>
  /// <param name="trans">OleDb事務(wù)</param>
  /// <param name="cmdType">命令類型例如 存儲(chǔ)過程或者文本</param>
  /// <param name="cmdText">命令文本,例如:Select * from Products</param>
  /// <param name="cmdParms">執(zhí)行命令的參數(shù)</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);
   }
  }
 }
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C# 6.0 的知識(shí)梳理

    C# 6.0 的知識(shí)梳理

    目前最新的版本是C# 7.0,VS的最新版本為Visual Studio 2017 RC,兩者都尚未進(jìn)入正式階段。C# 6.0雖說出了一段時(shí)間,但是似乎有許多人對(duì)這一塊知識(shí)并不了解。本文將對(duì)C# 6.0的知識(shí)進(jìn)行梳理,下面跟著小編一起來看下吧
    2016-12-12
  • WinForm導(dǎo)出文件為Word、Excel、文本文件的方法

    WinForm導(dǎo)出文件為Word、Excel、文本文件的方法

    這篇文章主要介紹了WinForm導(dǎo)出文件為Word、Excel、文本文件的方法,本文直接給出實(shí)現(xiàn)代碼,代碼中包含相應(yīng)注釋,需要的朋友可以參考下
    2015-03-03
  • C#獲取圖片文件擴(kuò)展名的方法

    C#獲取圖片文件擴(kuò)展名的方法

    這篇文章主要介紹了C#獲取圖片文件擴(kuò)展名的方法,實(shí)例總結(jié)了較為常見的獲取圖片文件擴(kuò)展名的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • VS2012 程序打包部署圖文詳解

    VS2012 程序打包部署圖文詳解

    VS2012雖然沒有集成打包工具,但它為我們提供了下載的端口,需要我們手動(dòng)安裝一個(gè)插件InstallShield。網(wǎng)上有很多第三方的打包工具,但為什么偏要使用微軟提供的呢
    2016-12-12
  • Devexpress treelist 簡(jiǎn)介

    Devexpress treelist 簡(jiǎn)介

    本文給大家簡(jiǎn)單介紹了Devexpress treelist 知識(shí),包括屬性列表,事件及使用方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2016-12-12
  • 實(shí)例講解C#中的職責(zé)鏈模式

    實(shí)例講解C#中的職責(zé)鏈模式

    這篇文章主要介紹了C#中的職責(zé)鏈模式的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#實(shí)現(xiàn)騎士飛行棋

    C#實(shí)現(xiàn)騎士飛行棋

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)騎士飛行棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的區(qū)別詳解

    c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的區(qū)別詳解

    這篇文章主要介紹了c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的區(qū)別,需要的朋友可以參考下
    2014-07-07
  • C#實(shí)現(xiàn)文字轉(zhuǎn)語音功能

    C#實(shí)現(xiàn)文字轉(zhuǎn)語音功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)文字轉(zhuǎn)語音功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 純C#實(shí)現(xiàn)Hook功能詳解

    純C#實(shí)現(xiàn)Hook功能詳解

    這篇文章主要介紹了純C#實(shí)現(xiàn)Hook功能詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01

最新評(píng)論

大石桥市| 综艺| 沂南县| 通海县| 汤原县| 抚宁县| 沂水县| 古浪县| 庐江县| 黄龙县| 彭水| 柳河县| 棋牌| 神池县| 都昌县| 祁阳县| 天全县| 元谋县| 海原县| 逊克县| 满洲里市| 庆阳市| 曲周县| 巴里| 绥阳县| 大邑县| 商丘市| 敖汉旗| 伊宁市| 马山县| 南昌市| 台东市| 海南省| 嵊州市| 康马县| 望城县| 万全县| 资阳市| 乌拉特后旗| 双辽市| 东乡族自治县|