C#--SQLserver、oracle、MySQL和Access的封装源码
抽象类:
using System; using System.Collections.Generic; using System.Data; //DataSet引用集 using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdoNet { public abstract class Database { public abstract string Open(string link); //打开 public abstract string Insdelupd(string sql); //增删改 public abstract string Insdelupd(string sql, string link); //增删改 public abstract DataSet Select(string sql, out string record); //查 public abstract DataSet Select(string sql, string link, out string record); //查 public abstract string Close(); //关闭 } }
SQLserver:
/*---------------------------------------------------------------- * // author:HQ * // describe:SQLserver * // date:2019-10-08 * ------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Data; //DataSet引用集 using System.Data.SqlClient; //sql引用集 using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdoNet { public class SQLserver : Database { private SqlConnection sql_con; //声明对象 /// <summary> /// SQLserver open /// </summary> /// <param name="link">link statement</param> /// <returns>Success:success; Fail:reason</returns> public override string Open(string link) { try { sql_con = new SqlConnection(link); sql_con.Open(); return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// SQLserver close /// </summary> /// <returns>Success:success Fail:reason</returns> public override string Close() { try { if (sql_con == null) { return "No database connection"; } if (sql_con.State == ConnectionState.Open || sql_con.State == ConnectionState.Connecting) { sql_con.Close(); sql_con.Dispose(); } else { if (sql_con.State == ConnectionState.Closed) { return "success"; } if (sql_con.State == ConnectionState.Broken) { return "ConnectionState:Broken"; } } return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// SQLserver insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql) { try { int num = 0; if (sql_con == null) { return "Please open the database connection first"; } if (sql_con.State == ConnectionState.Open) { SqlCommand sqlCommand = new SqlCommand(sql, sql_con); num = sqlCommand.ExecuteNonQuery(); } else { if (sql_con.State == ConnectionState.Closed) { return "Database connection closed"; } if (sql_con.State == ConnectionState.Broken) { return "Database connection is destroyed"; } if (sql_con.State == ConnectionState.Connecting) { return "The database is in connection"; } } return "success" + num; } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// SQLserver insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <param name="link">link statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql, string link) { try { int num = 0; using (SqlConnection con = new SqlConnection(link)) { con.Open(); //操作数据库的工具SqlCommand SqlCommand cmd = new SqlCommand(sql, con); //操作语句和链接工具 num = cmd.ExecuteNonQuery(); //执行操作返回影响行数 con.Close(); return "success" + num; } } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// SQLserver select /// </summary> /// <param name="sql">select statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, out string record) { try { //储存数据的工具初始化 DataSet dataSet = new DataSet(); if (sql_con == null) { record = "Please open the database connection first"; return dataSet; } if (sql_con.State == ConnectionState.Open) { SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sql, sql_con); sqlDataAdapter.Fill(dataSet, "sample"); sqlDataAdapter.Dispose(); record = "success"; return dataSet; } if (sql_con.State == ConnectionState.Closed) { record = "Database connection closed"; return dataSet; } if (sql_con.State == ConnectionState.Broken) { record = "Database connection is destroyed"; return dataSet; } if (sql_con.State == ConnectionState.Connecting) { record = "The database is in connection"; return dataSet; } record = "ERROR"; return dataSet; } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } /// <summary> /// SQLserver select /// </summary> /// <param name="sql">select statement</param> /// <param name="link">link statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, string link, out string record) { try { //储存数据的工具初始化 DataSet ds = new DataSet(); //相当于链接数据库的一个工具类(连接字符串) using (SqlConnection con = new SqlConnection(link)) { con.Open(); //打开 //用SqlConnection工具链接数据库,在通过sql查询语句查询结果现存入sql适配器 SqlDataAdapter sda = new SqlDataAdapter(sql, con); //(查询语句和连接工具) sda.Fill(ds, "sample"); //将适配器数据存入DataSet工具中 con.Close(); //用完关闭SqlConnection工具 sda.Dispose(); //手动释放SqlDataAdapter record = "success"; return ds; } } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } } }
Oracle:
/*---------------------------------------------------------------- * // author:HQ * // describe:Oracle * // date:2019-10-08 * ------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Data; //DataSet引用集 using System.Data.OracleClient; //oracle引用 using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdoNet { public class Oracle : Database { private OracleConnection oracle_con; /// <summary> /// Oracle open /// </summary> /// <param name="link">link statement</param> /// <returns>Success:success; Fail:reason</returns> public override string Open(string link) { try { oracle_con = new OracleConnection(link); oracle_con.Open(); return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// Oracle close /// </summary> /// <returns>Success:success Fail:reason</returns> public override string Close() { try { if (oracle_con == null) { return "No database connection"; } if (oracle_con.State == ConnectionState.Open) { oracle_con.Close(); oracle_con.Dispose(); } else { if (oracle_con.State == ConnectionState.Closed) { return "success"; } if (oracle_con.State == ConnectionState.Broken) { return "ConnectionState:Broken"; } } return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// Oracle insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql) { try { int num = 0; if (oracle_con == null) { return "Please open the database connection first"; } if (oracle_con.State == ConnectionState.Open) { OracleCommand oracleCommand = new OracleCommand(sql, oracle_con); num = oracleCommand.ExecuteNonQuery(); } else { if (oracle_con.State == ConnectionState.Closed) { return "Database connection closed"; } if (oracle_con.State == ConnectionState.Broken) { return "Database connection is destroyed"; } } return "success" + num; } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// Oracle insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <param name="link">link statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql, string link) { try { int num = 0; using (OracleConnection oracleConnection = new OracleConnection(link)) { DataSet dataSet = new DataSet(); oracleConnection.Open(); OracleCommand oracleCommand = new OracleCommand(sql, oracleConnection); num = oracleCommand.ExecuteNonQuery(); oracleConnection.Close(); return "success" + num; } } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// Oracle select /// </summary> /// <param name="sql">select statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, out string record) { try { DataSet dataSet = new DataSet(); if (oracle_con != null) { if (oracle_con.State == ConnectionState.Open) { OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(sql, oracle_con); oracleDataAdapter.Fill(dataSet, "sample"); oracleDataAdapter.Dispose(); record = "OK"; return dataSet; } if (oracle_con.State == ConnectionState.Closed) { record = "Database connection closed"; } else if (oracle_con.State == ConnectionState.Broken) { record = "Database connection is destroyed"; } } else { record = "Please open the database connection first"; } record = "error"; return dataSet; } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } /// <summary> /// Oracle select /// </summary> /// <param name="sql">select statement</param> /// <param name="link">link statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, string link, out string record) { try { using (OracleConnection oracleConnection = new OracleConnection(link)) { DataSet dataSet = new DataSet(); oracleConnection.Open(); OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(sql, oracleConnection); oracleDataAdapter.Fill(dataSet, "sample"); oracleDataAdapter.Dispose(); oracleConnection.Close(); record = "success"; return dataSet; } } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } } }
MySQL:
/*---------------------------------------------------------------- * // author:HQ * // describe:MySQL * // date:2019-10-08 * ------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Data; //DataSet引用集 using MySql.Data.MySqlClient; //MySQL引用 using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdoNet { public class MySQL : Database { private MySqlConnection mysql_con; /// <summary> /// MySQL open /// </summary> /// <param name="link">link statement</param> /// <returns>Success:success; Fail:reason</returns> public override string Open(string link) { try { mysql_con = new MySqlConnection(link); mysql_con.Open(); return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// MySQL close /// </summary> /// <returns>Success:success Fail:reason</returns> public override string Close() { try { if (mysql_con == null) { return "No database connection"; } if (mysql_con.State == ConnectionState.Open || mysql_con.State == ConnectionState.Connecting) { mysql_con.Close(); mysql_con.Dispose(); } else { if (mysql_con.State == ConnectionState.Closed) { return "success"; } if (mysql_con.State == ConnectionState.Broken) { return "ConnectionState:Broken"; } } return "success"; } catch (Exception ex) { return ex.Message; } } /// <summary> /// MySQL insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql) { try { int num = 0; if (mysql_con == null) { return "Please open the database connection first"; } if (mysql_con.State == ConnectionState.Open) { MySqlCommand sqlCommand = new MySqlCommand(sql, mysql_con); num = sqlCommand.ExecuteNonQuery(); } else { if (mysql_con.State == ConnectionState.Closed) { return "Database connection closed"; } if (mysql_con.State == ConnectionState.Broken) { return "Database connection is destroyed"; } if (mysql_con.State == ConnectionState.Connecting) { return "The database is in connection"; } } return "success" + num; } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// MySQL insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <param name="link">link statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public override string Insdelupd(string sql, string link) { try { int num = 0; using (MySqlConnection con = new MySqlConnection(link)) { con.Open(); //操作数据库的工具SqlCommand MySqlCommand cmd = new MySqlCommand(sql, con); //(操作语句和链接工具) num = cmd.ExecuteNonQuery(); //执行操作返回影响行数 con.Close(); return "success" + num; } } catch (Exception ex) { return ex.Message.ToString(); } } /// <summary> /// MySQL select /// </summary> /// <param name="sql">select statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, out string record) { try { //储存数据的工具初始化 DataSet dataSet = new DataSet(); if (mysql_con == null) { record = "Please open the database connection first"; return dataSet; } if (mysql_con.State == ConnectionState.Open) { MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(sql, mysql_con); sqlDataAdapter.Fill(dataSet, "sample"); sqlDataAdapter.Dispose(); record = "success"; return dataSet; } if (mysql_con.State == ConnectionState.Closed) { record = "Database connection closed"; return dataSet; } if (mysql_con.State == ConnectionState.Broken) { record = "Database connection is destroyed"; return dataSet; } if (mysql_con.State == ConnectionState.Connecting) { record = "The database is in connection"; return dataSet; } record = "ERROR"; return dataSet; } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } /// <summary> /// MySQL select /// </summary> /// <param name="sql">select statement</param> /// <param name="link">link statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public override DataSet Select(string sql, string link, out string record) { try { //储存数据的工具初始化 DataSet ds = new DataSet(); //相当于链接数据库的一个工具类(连接字符串) using (MySqlConnection con = new MySqlConnection(link)) { con.Open(); //打开 //用SqlConnection工具链接数据库,在通过sql查询语句查询结果现存入sql适配器 MySqlDataAdapter sda = new MySqlDataAdapter(sql, con); //(查询语句和连接工具) sda.Fill(ds, "sample"); //将适配器数据存入DataSet工具中 con.Close(); //用完关闭SqlConnection工具 sda.Dispose(); //手动释放SqlDataAdapter record = "success"; return ds; } } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } } }
Access:
/*---------------------------------------------------------------- * // author:HQ * // describe:Access * // date:2019-10-08 * ------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Data; //DataSet引用 using System.Data.OleDb; //Access引用 using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdoNet { public class Access { #region Access /// <summary> /// Access select /// </summary> /// <param name="sql">select statement</param> /// <param name="link">link statement</param> /// <param name="record">Success:success; Fail:reason</param> /// <returns>select result</returns> public DataSet Access_Mdb_Select(string sql, string link, out string record) { try { DataSet dataSet = new DataSet(); using (OleDbConnection oleDbConnection = new OleDbConnection(link)) { oleDbConnection.Open(); OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(sql, oleDbConnection); oleDbDataAdapter.Fill(dataSet, "sample"); oleDbDataAdapter.Dispose(); oleDbConnection.Close(); record = "success"; return dataSet; } } catch (Exception ex) { DataSet dataSet = new DataSet(); record = ex.Message.ToString(); return dataSet; } } /// <summary> /// Access insert,delete,update /// </summary> /// <param name="sql">insert,delete,update statement</param> /// <param name="link">link statement</param> /// <returns>Success:success + Number of affected rows; Fail:reason</returns> public string Access_Mdb_Insdelupd(string sql, string link) { try { using (OleDbConnection oleDbConnection = new OleDbConnection(link)) { DataSet dataSet = new DataSet(); oleDbConnection.Open(); OleDbCommand oleDbCommand = new OleDbCommand(sql, oleDbConnection); int num = oleDbCommand.ExecuteNonQuery(); oleDbConnection.Close(); return "success" + num; } } catch (Exception ex) { return ex.Message.ToString(); } } #endregion } }
由于Access用的比较少就没做其他功能
原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!