日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

C#MysqlHelper

發(fā)布時(shí)間:2024/9/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#MysqlHelper 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

  • View?Code???

  • ??

  • MysqlHelper類???

  • using?System;???

  • using?System.Collections;???

  • using?System.Collections.Specialized;???

  • using?System.Data;???

  • using?MySql.Data.MySqlClient;???

  • using?System.Configuration;???

  • using?System.Data.Common;???

  • using?System.Collections.Generic;???

  • using?System.Text.RegularExpressions;???

  • namespace?LOAF.DAL???

  • {???

  • public?class?MysqlHelper???

  • {???

  • //數(shù)據(jù)庫連接字符串(web.config來配置),可以動(dòng)態(tài)更改connectionString支持多數(shù)據(jù)庫.???

  • //?public?static?string?connectionString?=?ConfigurationManager.ConnectionStrings["ConnDB"].ConnectionString;???

  • public?static?string?connectionString?=?ConfigurationManager.AppSettings["MySQL"];???

  • //public?string?m?=?ConfigurationManager.AppSettings["MySQL"];???

  • public?MysqlHelper()?{?}???

  • #region?ExecuteNonQuery???

  • //執(zhí)行SQL語句,返回影響的記錄數(shù)???

  • ///?<summary>???

  • ///?執(zhí)行SQL語句,返回影響的記錄數(shù)???

  • ///?</summary>???

  • ///?<param?name="SQLString">SQL語句</param>???

  • ///?<returns>影響的記錄數(shù)</returns>???

  • public?static?int?ExecuteNonQuery(string?SQLString)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • using?(MySqlCommand?cmd?=?new?MySqlCommand(SQLString,?connection))???

  • {???

  • try???

  • {???

  • connection.Open();???

  • int?rows?=?cmd.ExecuteNonQuery();???

  • return?rows;???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • connection.Close();???

  • throw?e;???

  • }???

  • }???

  • }???

  • }???

  • ///?<summary>???

  • ///?執(zhí)行SQL語句,返回影響的記錄數(shù)???

  • ///?</summary>???

  • ///?<param?name="SQLString">SQL語句</param>???

  • ///?<returns>影響的記錄數(shù)</returns>???

  • public?static?int?ExecuteNonQuery(string?SQLString,?params?MySqlParameter[]?cmdParms)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • using?(MySqlCommand?cmd?=?new?MySqlCommand())???

  • {???

  • try???

  • {???

  • PrepareCommand(cmd,?connection,?null,?SQLString,?cmdParms);???

  • int?rows?=?cmd.ExecuteNonQuery();???

  • cmd.Parameters.Clear();???

  • return?rows;???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • throw?e;???

  • }???

  • }???

  • }???

  • }???

  • //執(zhí)行多條SQL語句,實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)。???

  • ///?<summary>???

  • ///?執(zhí)行多條SQL語句,實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)。???

  • ///?</summary>???

  • ///?<param?name="SQLStringList">多條SQL語句</param>???

  • public?static?bool?ExecuteNoQueryTran(List<String>?SQLStringList)???

  • {???

  • using?(MySqlConnection?conn?=?new?MySqlConnection(connectionString))???

  • {???

  • conn.Open();???

  • MySqlCommand?cmd?=?new?MySqlCommand();???

  • cmd.Connection?=?conn;???

  • MySqlTransaction?tx?=?conn.BeginTransaction();???

  • cmd.Transaction?=?tx;???

  • try???

  • {???

  • for?(int?n?=?0;?n?<?SQLStringList.Count;?n++)???

  • {???

  • string?strsql?=?SQLStringList[n];???

  • if?(strsql.Trim().Length?>?1)???

  • {???

  • cmd.CommandText?=?strsql;???

  • PrepareCommand(cmd,?conn,?tx,?strsql,?null);???

  • cmd.ExecuteNonQuery();???

  • }???

  • }???

  • cmd.ExecuteNonQuery();???

  • tx.Commit();???

  • return?true;???

  • }???

  • catch???

  • {???

  • tx.Rollback();???

  • return?false;???

  • }???

  • }???

  • }???

  • #endregion???

  • #region?ExecuteScalar???

  • ///?<summary>???

  • ///?執(zhí)行一條計(jì)算查詢結(jié)果語句,返回查詢結(jié)果(object)。???

  • ///?</summary>???

  • ///?<param?name="SQLString">計(jì)算查詢結(jié)果語句</param>???

  • ///?<returns>查詢結(jié)果(object)</returns>???

  • public?static?object?ExecuteScalar(string?SQLString)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • using?(MySqlCommand?cmd?=?new?MySqlCommand(SQLString,?connection))???

  • {???

  • try???

  • {???

  • connection.Open();???

  • object?obj?=?cmd.ExecuteScalar();???

  • if?((Object.Equals(obj,?null))?||?(Object.Equals(obj,?System.DBNull.Value)))???

  • {???

  • return?null;???

  • }???

  • else???

  • {???

  • return?obj;???

  • }???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • connection.Close();???

  • throw?e;???

  • }???

  • }???

  • }???

  • }???

  • ///?<summary>???

  • ///?執(zhí)行一條計(jì)算查詢結(jié)果語句,返回查詢結(jié)果(object)。???

  • ///?</summary>???

  • ///?<param?name="SQLString">計(jì)算查詢結(jié)果語句</param>???

  • ///?<returns>查詢結(jié)果(object)</returns>???

  • public?static?object?ExecuteScalar(string?SQLString,?params?MySqlParameter[]?cmdParms)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • using?(MySqlCommand?cmd?=?new?MySqlCommand())???

  • {???

  • try???

  • {???

  • PrepareCommand(cmd,?connection,?null,?SQLString,?cmdParms);???

  • object?obj?=?cmd.ExecuteScalar();???

  • cmd.Parameters.Clear();???

  • if?((Object.Equals(obj,?null))?||?(Object.Equals(obj,?System.DBNull.Value)))???

  • {???

  • return?null;???

  • }???

  • else???

  • {???

  • return?obj;???

  • }???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • throw?e;???

  • }???

  • }???

  • }???

  • }???

  • #endregion???

  • #region?ExecuteReader???

  • ///?<summary>???

  • ///?執(zhí)行查詢語句,返回MySqlDataReader?(?注意:調(diào)用該方法后,一定要對(duì)MySqlDataReader進(jìn)行Close?)???

  • ///?</summary>???

  • ///?<param?name="strSQL">查詢語句</param>???

  • ///?<returns>MySqlDataReader</returns>???

  • public?static?MySqlDataReader?ExecuteReader(string?strSQL)???

  • {???

  • MySqlConnection?connection?=?new?MySqlConnection(connectionString);???

  • MySqlCommand?cmd?=?new?MySqlCommand(strSQL,?connection);???

  • try???

  • {???

  • connection.Open();???

  • MySqlDataReader?myReader?=?cmd.ExecuteReader(CommandBehavior.CloseConnection);???

  • return?myReader;???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • throw?e;???

  • }???

  • }???

  • ///?<summary>???

  • ///?執(zhí)行查詢語句,返回MySqlDataReader?(?注意:調(diào)用該方法后,一定要對(duì)MySqlDataReader進(jìn)行Close?)???

  • ///?</summary>???

  • ///?<param?name="strSQL">查詢語句</param>???

  • ///?<returns>MySqlDataReader</returns>???

  • public?static?MySqlDataReader?ExecuteReader(string?SQLString,?params?MySqlParameter[]?cmdParms)???

  • {???

  • MySqlConnection?connection?=?new?MySqlConnection(connectionString);???

  • MySqlCommand?cmd?=?new?MySqlCommand();???

  • try???

  • {???

  • PrepareCommand(cmd,?connection,?null,?SQLString,?cmdParms);???

  • MySqlDataReader?myReader?=?cmd.ExecuteReader(CommandBehavior.CloseConnection);???

  • cmd.Parameters.Clear();???

  • return?myReader;???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?e)???

  • {???

  • throw?e;???

  • }???

  • //?finally???

  • //?{???

  • //?cmd.Dispose();???

  • //?connection.Close();???

  • //?}???

  • }???

  • #endregion???

  • #region?ExecuteDataTable???

  • ///?<summary>???

  • ///?執(zhí)行查詢語句,返回DataTable???

  • ///?</summary>???

  • ///?<param?name="SQLString">查詢語句</param>???

  • ///?<returns>DataTable</returns>???

  • public?static?DataTable?ExecuteDataTable(string?SQLString)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • DataSet?ds?=?new?DataSet();???

  • try???

  • {???

  • connection.Open();???

  • MySqlDataAdapter?command?=?new?MySqlDataAdapter(SQLString,?connection);???

  • command.Fill(ds,?"ds");???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?ex)???

  • {???

  • throw?new?Exception(ex.Message);???

  • }???

  • return?ds.Tables[0];???

  • }???

  • }???

  • ///?<summary>???

  • ///?執(zhí)行查詢語句,返回DataSet???

  • ///?</summary>???

  • ///?<param?name="SQLString">查詢語句</param>???

  • ///?<returns>DataTable</returns>???

  • public?static?DataTable?ExecuteDataTable(string?SQLString,?params?MySqlParameter[]?cmdParms)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • MySqlCommand?cmd?=?new?MySqlCommand();???

  • PrepareCommand(cmd,?connection,?null,?SQLString,?cmdParms);???

  • using?(MySqlDataAdapter?da?=?new?MySqlDataAdapter(cmd))???

  • {???

  • DataSet?ds?=?new?DataSet();???

  • try???

  • {???

  • da.Fill(ds,?"ds");???

  • cmd.Parameters.Clear();???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?ex)???

  • {???

  • throw?new?Exception(ex.Message);???

  • }???

  • return?ds.Tables[0];???

  • }???

  • }???

  • }???

  • //獲取起始頁碼和結(jié)束頁碼???

  • public?static?DataTable?ExecuteDataTable(string?cmdText,?int?startResord,?int?maxRecord)???

  • {???

  • using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))???

  • {???

  • DataSet?ds?=?new?DataSet();???

  • try???

  • {???

  • connection.Open();???

  • MySqlDataAdapter?command?=?new?MySqlDataAdapter(cmdText,?connection);???

  • command.Fill(ds,?startResord,?maxRecord,?"ds");???

  • }???

  • catch?(MySql.Data.MySqlClient.MySqlException?ex)???

  • {???

  • throw?new?Exception(ex.Message);???

  • }???

  • return?ds.Tables[0];???

  • }???

  • }???

  • #endregion???

  • ///?<summary>???

  • ///?獲取分頁數(shù)據(jù)?在不用存儲(chǔ)過程情況下???

  • ///?</summary>???

  • ///?<param?name="recordCount">總記錄條數(shù)</param>???

  • ///?<param?name="selectList">選擇的列逗號(hào)隔開,支持top?num</param>???

  • ///?<param?name="tableName">表名字</param>???

  • ///?<param?name="whereStr">條件字符?必須前加?and</param>???

  • ///?<param?name="orderExpression">排序?例如?ID</param>???

  • ///?<param?name="pageIdex">當(dāng)前索引頁</param>???

  • ///?<param?name="pageSize">每頁記錄數(shù)</param>???

  • ///?<returns></returns>???

  • public?static?DataTable?getPager(out?int?recordCount,?string?selectList,?string?tableName,?string?whereStr,?string?orderExpression,?int?pageIdex,?int?pageSize)???

  • {???

  • int?rows?=?0;???

  • DataTable?dt?=?new?DataTable();???

  • MatchCollection?matchs?=?Regex.Matches(selectList,?@"top\s+\d{1,}",?RegexOptions.IgnoreCase);//含有top???

  • string?sqlStr?=?sqlStr?=?string.Format("select?{0}?from?{1}?where?1=1?{2}",?selectList,?tableName,?whereStr);???

  • if?(!string.IsNullOrEmpty(orderExpression))?{?sqlStr?+=?string.Format("?Order?by?{0}",?orderExpression);?}???

  • if?(matchs.Count?>?0)?//含有top的時(shí)候???

  • {???

  • DataTable?dtTemp?=?ExecuteDataTable(sqlStr);???

  • rows?=?dtTemp.Rows.Count;???

  • }???

  • else?//不含有top的時(shí)候???

  • {???

  • string?sqlCount?=?string.Format("select?count(*)?from?{0}?where?1=1?{1}?",?tableName,?whereStr);???

  • //獲取行數(shù)???

  • object?obj?=?ExecuteScalar(sqlCount);???

  • if?(obj?!=?null)???

  • {???

  • rows?=?Convert.ToInt32(obj);???

  • }???

  • }???

  • dt?=?ExecuteDataTable(sqlStr,?(pageIdex-1)*pageSize,?pageSize);???

  • recordCount?=?rows;???

  • return?dt;???

  • }???

  • #region?創(chuàng)建command???

  • private?static?void?PrepareCommand(MySqlCommand?cmd,?MySqlConnection?conn,?MySqlTransaction?trans,?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?=?CommandType.Text;//cmdType;???

  • if?(cmdParms?!=?null)???

  • {???

  • foreach?(MySqlParameter?parameter?in?cmdParms)???

  • {???

  • if?((parameter.Direction?==?ParameterDirection.InputOutput?||?parameter.Direction?==?ParameterDirection.Input)?&&???

  • (parameter.Value?==?null))???

  • {???

  • parameter.Value?=?DBNull.Value;???

  • }???

  • cmd.Parameters.Add(parameter);???

  • }???

  • }???

  • }???

  • #endregion???

  • }???

  • }??



  • 需要注意的地方有如下幾點(diǎn)?
    1)在sqlserver中參數(shù)化sql語句是用“@”符號(hào),在mysql里面需要是用?號(hào),切記,切記.?
    2 )還有就是sqlserver中刪除表可以這樣寫delete news where ID=12,但是在mysql里面 是delete from news where ID=12,收了from報(bào)錯(cuò)?
    3 )我在使用過程中遇到了中文亂碼,網(wǎng)上大部分解決辦法是把表的設(shè)置成utf-8字符集。以及 C:\Program Files\MySQL\MySQL Server 5.1路徑下my.ini 打開找到兩處?
    default-character-set 都設(shè)置成=utf8。


    轉(zhuǎn)載于:https://my.oschina.net/u/582827/blog/472297

    總結(jié)

    以上是生活随笔為你收集整理的C#MysqlHelper的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。