using System;
網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營了10多年的成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySQL.Data.MySqlClient;
using System.Data;
namespace www.xinduofen.com
{
class MySqlOperateTool
{
private const string serverIP = "localhost";//mysql服務(wù)器的IP地址
private const string serverPort = "3306";//mysql服務(wù)器的端口
private const string userName = "LGQ";//mysql服務(wù)器的用戶名
private const string userPassword = "lgq";//mysql服務(wù)器的用戶密碼
/// <summary>
/// MySqlOperateTool工具類的測(cè)試方法(供使用MySqlOperateTool工具類的人員進(jìn)行參考)
/// </summary>
public static void mySqlOperateToolTest() {
MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
if (dbConnection != null)
{
//創(chuàng)建一個(gè)事務(wù)
MySqlTransaction transaction = MySqlOperateTool.beginTransaction(dbConnection);
try
{
string sql = "insert into testTable values(1001,'張三','男')";
MySqlOperateTool.executeNonQuery(sql, dbConnection);
sql = "insert into testTable values(1002,'李四','女')";
MySqlOperateTool.executeNonQuery(sql, dbConnection);
////模擬異常
//int aa = 0;
//int bb = 10 / aa;
//提交事務(wù)
MySqlOperateTool.transactionCommit(transaction);
}
catch (Exception)
{
//回滾事務(wù)
MySqlOperateTool.transactionRollback(transaction);
}
MySqlOperateTool.closeConnection(dbConnection);
}
//MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
//if (dbConnection != null)
//{
// string sql = "select count(id) from testTable";
// object resultSetCnt = MySqlOperateTool.getSingleObject(sql, dbConnection);
// if (resultSetCnt != null)
// {
// System.Console.WriteLine("resultSetCnt:" + (long)resultSetCnt);
// }
// sql = "select * from testTable";
// MySqlDataReader dataReader = MySqlOperateTool.getDataReader(sql, dbConnection);
// if (dataReader!=null)
// {
// while (dataReader.Read())
// {
// int id = (int)dataReader["id"];
// string name = (string)dataReader["name"];
// string sex = (string)dataReader["sex"];
// System.Console.WriteLine("id:"+id+" name:"+name+" sex:"+sex);
// }
// }
// MySqlOperateTool.closeConnection(dbConnection);
//}
//MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
//if (dbConnection != null)
//{
// DataSet dataset = new DataSet();//定義一個(gè)DataSet
// string sql = "select * from testTable";
// bool resultFlag = MySqlOperateTool.dataAdappterDataSet(sql,dataset,"persons", dbConnection);
// if (resultFlag)
// {
// foreach (DataRow therow in dataset.Tables["persons"].Rows)
// {
// int id = (int)therow["id"];
// string name = (string)therow["name"];
// string sex = (string)therow["sex"];
// System.Console.WriteLine("id:" + id + " name:" + name + " sex:" + sex);
// }
// }
// MySqlOperateTool.closeConnection(dbConnection);
//}
//MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
//if (dbConnection != null)
//{
// DataSet dataset = new DataSet();//定義一個(gè)DataSet
// string sql = "select * from testTable";
// //獲得一個(gè)空的用于更新的類對(duì)象
// MySqlCommandBuilder commandBuilder = MySqlOperateTool.dataAdappterDataSetUpdate(sql, dataset, "persons", dbConnection);
// if (commandBuilder!=null)
// {
// //更新數(shù)據(jù)庫的內(nèi)容(假設(shè)數(shù)據(jù)庫中有兩行以上的人員信息)
// dataset.Tables["persons"].Rows[0]["name"] = "天機(jī)小紅";
// dataset.Tables["persons"].Rows[0]["sex"] = "女";
// dataset.Tables["persons"].Rows[1]["name"] = "小李分刀";
// dataset.Tables["persons"].Rows[1]["sex"] = "男";
// commandBuilder.DataAdapter.Update(dataset, "persons");
// }
// MySqlOperateTool.closeConnection(dbConnection);
//}
//MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
//if (dbConnection != null)
//{
// DataSet dataset = new DataSet();//定義一個(gè)DataSet
// string sql = "select * from testTable";
// //獲得一個(gè)空的用于更新的類對(duì)象
// MySqlCommandBuilder commandBuilder = MySqlOperateTool.dataAdappterDataSetUpdate(sql, dataset, "persons", dbConnection);
// if (commandBuilder != null)
// {
// //向數(shù)據(jù)庫中添加內(nèi)容
// DataRow datarow = dataset.Tables["persons"].NewRow();//以此表的字段定義一個(gè)新的一行數(shù)據(jù)
// datarow["id"] = 1003;
// datarow["name"] = "張三";
// datarow["sex"] = "男";
// dataset.Tables["persons"].Rows.Add(datarow);
// datarow = dataset.Tables["persons"].NewRow();//以此表的字段定義一個(gè)新的一行數(shù)據(jù)
// datarow["id"] = 1004;
// datarow["name"] = "李四";
// datarow["sex"] = "女";
// dataset.Tables["persons"].Rows.Add(datarow);
// commandBuilder.DataAdapter.Update(dataset, "persons");
// }
// MySqlOperateTool.closeConnection(dbConnection);
//}
//MySqlConnection dbConnection = MySqlOperateTool.getConnection("test");
//if (dbConnection != null)
//{
// DataSet dataset = new DataSet();//定義一個(gè)DataSet
// string sql = "select * from testTable";
// //獲得一個(gè)空的用于更新的類對(duì)象
// MySqlCommandBuilder commandBuilder = MySqlOperateTool.dataAdappterDataSetUpdate(sql, dataset, "persons", dbConnection);
// if (commandBuilder != null)
// {
// //從數(shù)據(jù)庫中刪除內(nèi)容
// DataRow datarow = dataset.Tables["persons"].Rows[2];
// datarow.Delete();
// datarow = dataset.Tables["persons"].Rows[3];
// datarow.Delete();
// commandBuilder.DataAdapter.Update(dataset, "persons");
// }
// MySqlOperateTool.closeConnection(dbConnection);
//}
}
/// <summary>
/// 獲取數(shù)據(jù)庫連接對(duì)象
/// </summary>
/// <param name="dbFile">傳入的數(shù)據(jù)庫名</param>
/// <returns>返回值為null代表獲取連接失敗</returns>
public static MySqlConnection getConnection(string dbName)
{
MySqlConnection dbConnection = null;
if (string.IsNullOrEmpty(dbName))//如果傳入的參數(shù)異常
{
return null;
}
string connectStr = "Data Source=" + serverIP + ";Port=" + serverPort + ";User ID=" + userName + ";Password=" + userPassword + ";Database=" + dbName + ";CharSet=utf8;";
try {
MySqlConnection connection = new MySqlConnection(connectStr);
connection.Open();
//獲得mysql數(shù)據(jù)庫連接對(duì)象成功
dbConnection = connection;
}catch(Exception){
System.Console.WriteLine("C#獲得mysql數(shù)據(jù)庫連接對(duì)象時(shí)產(chǎn)生了異常!");
}
return dbConnection;
}
/// <summary>
/// 創(chuàng)建一個(gè)事務(wù),并且開始執(zhí)行事務(wù)
/// </summary>
/// <param name="dbConnection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>返回為null代表創(chuàng)建事務(wù)失敗</returns>
public static MySqlTransaction beginTransaction(MySqlConnection dbConnection)
{
MySqlTransaction transaction = null;
if (dbConnection == null)
{
return null;
}
try
{
transaction = dbConnection.BeginTransaction();//創(chuàng)建事務(wù),并且開始執(zhí)行事務(wù)
}
catch (Exception) {
Console.WriteLine("創(chuàng)建事務(wù)時(shí)產(chǎn)生了異常!");
}
return transaction;
}
/// <summary>
/// 提交事務(wù)
/// </summary>
/// <param name="transaction">與一個(gè)事務(wù)相關(guān)的對(duì)象</param>
public static void transactionCommit(MySqlTransaction transaction)
{
try
{
//提交事務(wù)
transaction.Commit();
}
catch (Exception)
{
Console.WriteLine("提交事務(wù)時(shí)產(chǎn)生了異常!");
}
}
/// <summary>
/// 回滾事務(wù)
/// </summary>
/// <param name="transaction">與一個(gè)事務(wù)相關(guān)的對(duì)象</param>
public static void transactionRollback(MySqlTransaction transaction)
{
try
{
//回滾事務(wù)
transaction.Rollback();
}
catch (Exception)
{
Console.WriteLine("回滾事務(wù)時(shí)產(chǎn)生了異常!");
}
}
/// <summary>
/// 關(guān)閉數(shù)據(jù)庫的連接
/// </summary>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
public static void closeConnection(MySqlConnection dbConnection)
{
//如果連接不為空
if (dbConnection != null)
{
try {
dbConnection.Close();
}catch(Exception){
System.Console.WriteLine("C#關(guān)閉mysql數(shù)據(jù)庫連接對(duì)象時(shí)產(chǎn)生了異常!");
}
}
}
/// <summary>
/// 查詢單個(gè)信息
/// </summary>
/// <param name="sql">sql查詢語句</param>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>
/// 如果返回值為null代表查詢失敗;
/// 此方法只能返回一個(gè)值,主要用于查行數(shù),等其他用途(傳入的參數(shù)均不能為空);
/// 返回 Object 類型的數(shù)據(jù),執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行;
/// </returns>
public static Object getSingleObject(string sql, MySqlConnection dbConnection)
{
Object result = null;
if (string.IsNullOrEmpty(sql) || dbConnection == null)//如果傳入?yún)?shù)不合法
{
return null;
}
try
{
MySqlCommand command = new MySqlCommand(sql, dbConnection);//創(chuàng)建數(shù)據(jù)庫執(zhí)行命令語句對(duì)象
result = command.ExecuteScalar();//此命令只會(huì)返回一個(gè)值
}
catch (Exception)//如果sql命令執(zhí)行失敗
{
Console.WriteLine("sql查詢語句不合法或者數(shù)據(jù)庫連接對(duì)象異常!");
}
return result;//返回讀到的值
}
/// <summary>
/// 執(zhí)行sql語句
/// </summary>
/// <param name="sql">sql執(zhí)行語句</param>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>
/// 返回值為0代表sql命令執(zhí)行后對(duì)數(shù)據(jù)庫無任何影響,如果返回值大于0代表sql命令執(zhí)行后對(duì)數(shù)據(jù)庫產(chǎn)生了影響;
/// 此方法只能返回一個(gè)值(指令在數(shù)據(jù)庫影響的行數(shù)),主要用于執(zhí)行 insert、delete、alter操作;
/// </returns>
public static int executeNonQuery(string sql, MySqlConnection dbConnection)
{
//sql語句執(zhí)行后影響的行數(shù),初始化為0
int resultCnt = 0;
if (string.IsNullOrEmpty(sql) || dbConnection == null)//如果傳入?yún)?shù)不合法
{
return 0;
}
try
{
MySqlCommand command = dbConnection.CreateCommand();//創(chuàng)建數(shù)據(jù)庫執(zhí)行命令語句對(duì)象
command.CommandText = sql;//執(zhí)行相關(guān)的sql語句
resultCnt = command.ExecuteNonQuery();//此命令無查詢功能
}
catch (Exception)//如果sql命令執(zhí)行失敗
{
Console.WriteLine("sql查詢語句不合法或者數(shù)據(jù)庫連接對(duì)象異常!");
}
return resultCnt;//返回影響的行數(shù)
}
/// <summary>
/// 查詢多行信息
/// </summary>
/// <param name="sql">sql查詢語句</param>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>
/// 返回為null,代表查詢失敗,返回 MySqlDataReader 類型的數(shù)據(jù),主要用于檢索多行值;
/// 此方法只能返回 MySqlDataReader 類型的數(shù)據(jù),只能一行一行的讀數(shù)據(jù);
/// </returns>
public static MySqlDataReader getDataReader(string sql, MySqlConnection dbConnection)
{
MySqlDataReader data_read = null;
if (string.IsNullOrEmpty(sql) || dbConnection == null)//如果傳入?yún)?shù)不合法
{
return null;
}
try
{
MySqlCommand command = dbConnection.CreateCommand();//創(chuàng)建數(shù)據(jù)庫執(zhí)行命令語句對(duì)象
command.CommandText = sql;//執(zhí)行相關(guān)的sql語句
data_read = command.ExecuteReader();//讀取數(shù)據(jù)庫中的數(shù)據(jù)
}
catch (Exception)//如果sql命令執(zhí)行失敗
{
Console.WriteLine("sql查詢語句不合法或者數(shù)據(jù)庫連接對(duì)象異常!");
}
return data_read;//返回讀到的數(shù)據(jù)
}
/// <summary>
/// 此方法是向傳入的 dataset 中填入數(shù)據(jù),“不支持更新功能”
/// </summary>
/// <param name="sql">sql查詢語句</param>
/// <param name="dataset">用于存儲(chǔ)查詢信息的數(shù)據(jù)集緩存區(qū)</param>
/// <param name="table_name">是dataset要緩存查詢信息的DataTble名稱</param>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>查詢成功返回true,失敗返回false</returns>
public static bool dataAdappterDataSet(string sql, DataSet dataset, string table_name, MySqlConnection dbConnection)
{
//初始化查詢失敗
bool result = false;
if (string.IsNullOrEmpty(sql) || dataset == null || string.IsNullOrEmpty(table_name) || dbConnection==null)
{
return false;
}
try
{
//定義將數(shù)據(jù)庫的數(shù)據(jù)匹配到DataSet的適配器對(duì)象
MySqlDataAdapter data_adappter = new MySqlDataAdapter(sql, dbConnection);
data_adappter.Fill(dataset, table_name);
result = true;//查詢成功
}
catch (Exception)//如果sql命令執(zhí)行失敗
{
Console.WriteLine("sql查詢語句不合法或者數(shù)據(jù)庫連接對(duì)象異常!");
}
return result;//返回查詢結(jié)果
}
/// <summary>
/// 此方法是向傳入的 dataset 中填入數(shù)據(jù),“支持更新功能”,執(zhí)行更新之前不能斷開與數(shù)據(jù)庫的連接
/// </summary>
/// <param name="sql">sql查詢語句</param>
/// <param name="dataset">用于存儲(chǔ)查詢信息的數(shù)據(jù)集緩存區(qū)</param>
/// <param name="table_name">是dataset要緩存查詢信息的DataTble名稱</param>
/// <param name="db_connection">數(shù)據(jù)庫連接對(duì)象</param>
/// <returns>返回一個(gè) MySqlCommandBuilder 對(duì)象,可以用來進(jìn)行更新操作,將內(nèi)存dataset中改變的數(shù)據(jù)同步到數(shù)據(jù)庫中</returns>
public static MySqlCommandBuilder dataAdappterDataSetUpdate(string sql, DataSet dataset, string table_name, MySqlConnection dbConnection)
{
MySqlCommandBuilder commandBuilder = null;
if (string.IsNullOrEmpty(sql) || dataset == null || string.IsNullOrEmpty(table_name) || dbConnection == null)
{
return null;
}
try
{
//定義將數(shù)據(jù)庫的數(shù)據(jù)匹配到DataSet的適配器對(duì)象
MySqlDataAdapter data_adappter = new MySqlDataAdapter(sql, dbConnection);
MySqlCommandBuilder builder = new MySqlCommandBuilder(data_adappter);
data_adappter.Fill(dataset, table_name);
commandBuilder = builder;//查詢成功
}
catch (Exception)//如果sql命令執(zhí)行失敗
{
Console.WriteLine("sql查詢語句不合法或者數(shù)據(jù)庫連接對(duì)象異常!");
}
return commandBuilder;//查詢結(jié)束,返回commandBuilder
}
}
}
內(nèi)容來自:越康體育
網(wǎng)站標(biāo)題:C#的MySQL操作工具類
URL分享:http://jinyejixie.com/article22/gpchjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站導(dǎo)航、全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)