ado mysql_以ADO形式操作mysql数据库

本文提供了一个C#类库,用于通过ADO.NET接口连接并操作MySQL数据库,包括执行SQL语句、存储过程,进行增删改查操作,并提供了连接池管理。示例代码展示了如何插入、更新、删除数据。
摘要由CSDN通过智能技术生成

首先得需要一个连接mysql的helper类:

public class MySqlHelper

{

#region [ Connection ]

public static string connectionString = "Database=newspublish;Data Source=127.0.0.1;Port=3306;User Id=root;Password=123456;Charset=utf8;SslMode=none;";

public static MySqlConnection GetConnection

{

get

{

return new MySqlConnection(connectionString);

}

}

#endregion

#region [ ExecuteNonQuery ]

///

/// 普通SQL语句执行增删改

///

/// SQL语句

/// 可变参数

/// 受影响行数

public static int ExecuteNonQuery(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteNonQuery(cmdText, CommandType.Text, commandParameters);

}

///

/// 存储过程执行增删改

///

/// 存储过程

/// 可变参数

/// 受影响行数

public static int ExecuteNonQueryByProc(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteNonQuery(cmdText, CommandType.StoredProcedure, commandParameters);

}

///

/// 执行增删改

///

/// 命令字符串

/// 命令类型

/// 可变参数

/// 受影响行数

public static int ExecuteNonQuery(string cmdText, CommandType cmdType, params MySqlParameter[] commandParameters)

{

int result = 0;

using (MySqlConnection conn = GetConnection)

{

try

{

MySqlCommand command = new MySqlCommand();

PrepareCommand(command, conn, cmdType, cmdText, commandParameters);

result = command.ExecuteNonQuery();

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

finally

{

if (conn != null && conn.State != ConnectionState.Closed)

conn.Close();

}

}

return result;

}

#endregion

#region [ ExecuteReader ]

///

/// SQL语句得到 MySqlDataReader 对象

///

/// 命令字符串

/// 可变参数

/// MySqlDataReader 对象

public static MySqlDataReader ExecuteReader(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteReader(cmdText, CommandType.Text, commandParameters);

}

///

/// 存储过程得到 MySqlDataReader 对象

///

/// 命令字符串

/// 可变参数

/// MySqlDataReader 对象

public static MySqlDataReader ExecuteReaderByProc(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteReader(cmdText, CommandType.StoredProcedure, commandParameters);

}

///

/// 得到 MySqlDataReader 对象

///

/// 命令字符串

/// 命令类型

/// 可变参数

/// MySqlDataReader 对象

public static MySqlDataReader ExecuteReader(string cmdText, CommandType cmdType, params MySqlParameter[] commandParameters)

{

MySqlDataReader result = null;

using (MySqlConnection conn = GetConnection)

{

try

{

MySqlCommand command = new MySqlCommand();

PrepareCommand(command, conn, cmdType, cmdText, commandParameters);

result = command.ExecuteReader(CommandBehavior.CloseConnection);

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

finally

{

if (conn != null && conn.State != ConnectionState.Closed)

conn.Close();

}

}

return result;

}

#endregion

#region [ ExecuteDataSet ]

///

/// 执行SQL语句, 返回DataSet

///

/// 命令字符串

/// 可变参数

/// DataSet

public static DataSet ExecuteDataSet(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteDataSet(cmdText, CommandType.Text, commandParameters);

}

///

/// 执行存储过程, 返回DataSet

///

/// 命令字符串

/// 可变参数

/// DataSet

public static DataSet ExecuteDataSetByProc(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteDataSet(cmdText, CommandType.StoredProcedure, commandParameters);

}

///

/// 返回DataSet

///

/// 命令字符串

/// 命令类型

/// 可变参数

/// DataSet

public static DataSet ExecuteDataSet(string cmdText, CommandType cmdType, params MySqlParameter[] commandParameters)

{

DataSet result = null;

using (MySqlConnection conn = GetConnection)

{

try

{

MySqlCommand command = new MySqlCommand();

PrepareCommand(command, conn, cmdType, cmdText, commandParameters);

MySqlDataAdapter adapter = new MySqlDataAdapter();

adapter.SelectCommand = command;

result = new DataSet();

adapter.Fill(result);

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

finally

{

if (conn != null && conn.State != ConnectionState.Closed)

conn.Close();

}

}

return result;

}

#endregion

#region [ ExecuteDataTable ]

///

/// 执行SQL语句, 返回DataTable

///

/// 命令字符串

/// 可变参数

/// DataTable

public static DataTable ExecuteDataTable(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteDataTable(cmdText, CommandType.Text, commandParameters);

}

///

/// 执行存储过程, 返回DataTable

///

/// 命令字符串

/// 可变参数

/// DataTable

public static DataTable ExecuteDataTableByProc(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteDataTable(cmdText, CommandType.StoredProcedure, commandParameters);

}

///

/// 返回DataTable

///

/// 命令字符串

/// 命令类型

/// 可变参数

/// DataTable

public static DataTable ExecuteDataTable(string cmdText, CommandType cmdType, params MySqlParameter[] commandParameters)

{

DataTable dtResult = null;

DataSet ds = ExecuteDataSet(cmdText, cmdType, commandParameters);

if (ds != null && ds.Tables.Count > 0)

{

dtResult = ds.Tables[0];

}

return dtResult;

}

#endregion

#region [ ExecuteScalar ]

///

/// 普通SQL语句执行ExecuteScalar

///

/// SQL语句

/// 可变参数

/// 受影响行数

public static object ExecuteScalar(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteScalar(cmdText, CommandType.Text, commandParameters);

}

///

/// 存储过程执行ExecuteScalar

///

/// 存储过程

/// 可变参数

/// 受影响行数

public static object ExecuteScalarByProc(string cmdText, params MySqlParameter[] commandParameters)

{

return ExecuteScalar(cmdText, CommandType.StoredProcedure, commandParameters);

}

///

/// 执行ExecuteScalar

///

/// 命令字符串

/// 命令类型

/// 可变参数

/// 受影响行数

public static object ExecuteScalar(string cmdText, CommandType cmdType, params MySqlParameter[] commandParameters)

{

object result = null;

using (MySqlConnection conn = GetConnection)

{

try

{

MySqlCommand command = new MySqlCommand();

PrepareCommand(command, conn, cmdType, cmdText, commandParameters);

result = command.ExecuteScalar();

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

finally

{

if (conn != null && conn.State != ConnectionState.Closed)

conn.Close();

}

}

return result;

}

#endregion

#region [ PrepareCommand ]

///

/// Command对象执行前预处理

///

///

///

///

///

///

///

private static void PrepareCommand(MySqlCommand command, MySqlConnection connection, CommandType cmdType, string cmdText, MySqlParameter[] commandParameters)

{

try

{

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

command.Connection = connection;

command.CommandText = cmdText;

command.CommandType = cmdType;

//command.CommandTimeout = 3600; //此处请自定义

//if (trans != null) command.Transaction = trans;

if (commandParameters != null)

{

foreach (MySqlParameter parm in commandParameters)

command.Parameters.Add(parm);

}

}

catch

{

}

}

#endregion

}

新建控制台应用程序:

dfb8cf97ab804738f4f107c5ba03c6f0.png

static void Main(string[] args)

{

//string sql = "select title from news where id = 10";/*查询*/

//string result = (string)MySqlHelper.ExecuteScalar(sql);

//string sql = "INSERT INTO news(title,content,typeid) values('111','222',6)";/*新增*/

//string sql = "UPDATE news SET title = '666' WHERE id = 11";/*更新*/

//string sql = "DELETE FROM news WHERE id = 11";/*删除*/

//int i = MySqlHelper.ExecuteNonQuery(sql);

//Console.WriteLine(i);

Console.Read();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值