首页 > 数据库 >mysql数据库帮助类

mysql数据库帮助类

时间:2023-10-20 16:45:25浏览次数:29  
标签:帮助 return string DbConnection 数据库 System static mysql public

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OA
{
    class MySQLHelper
    {

        /// <summary>
        /// 数据库位置. 本机为句点或是localhost. 远程服务器为IP地址或域名. 如果不是默认端口,则使用逗号分隔加在地址后面.
        /// </summary>
        public static string DataSource { get; set; } = "localhost";
        /// <summary>
        /// 要连接的目标数据库
        /// </summary>
        public static string DatabaseName { get; set; } = "oa";
        /// <summary>
        /// 连接数据库时使用的账号
        /// </summary>
        public static string DbUser { get; set; } = "oa";
        /// <summary>
        /// 连接数据库时使用的密码
        /// </summary>
        public static string DbPassword { get; set; } = "abcd1234";

        /// <summary>
        /// 连接串
        /// </summary>
        public static string ConnectionString
        {
            get
            {
                // return "Data Source=127.0.0.1;Database='oa';User id = 'root'; Password='';Charset='utf8';Allow Zero Datetime=True";
                return $"server={DataSource};port=3306;user={DbUser};password={DbPassword}; database={DatabaseName};Pooling=false;Charset='utf8';Allow Zero Datetime=True";
            }
        }

        private static MySqlConnection m_DbConnection = null;

        /// <summary>
        /// 打开数据库.
        /// </summary>
        public static void Open()
        {
            try
            {
                if (m_DbConnection == null) m_DbConnection = new MySqlConnection(ConnectionString);
                if (m_DbConnection.State == System.Data.ConnectionState.Closed) m_DbConnection.Open();
            }
            catch { throw new Exception("数据库连接失败,请确定是否打开。"); }
        }

        /// <summary>
        /// 关闭数据库.
        /// </summary>
        public static void Close()
        {
            if (m_DbConnection == null) return;
            if (m_DbConnection.State != System.Data.ConnectionState.Closed) m_DbConnection.Close();
        }

        /// <summary>
        /// 执行查询
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql)
        {
            Close();
            Open();
            MySqlCommand dbCommand = new MySqlCommand(sql, m_DbConnection);
            int ret = dbCommand.ExecuteNonQuery();
            //dbCommand.Dispose();
            //Close();
            return ret;
        }

        /// <summary>
        /// 执行查询并返回结果集
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static MySqlDataReader ExecuteReader(string sql)
        {
            Close();
            Open();
            MySqlCommand oleDbCommand = new MySqlCommand(sql, m_DbConnection);
            //return oleDbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            return oleDbCommand.ExecuteReader();
        }


        public static object ExecuteScalar(string sql)
        {
            Close();
            Open();
            MySqlCommand dbCommand = new MySqlCommand(sql, m_DbConnection);
            object result = dbCommand.ExecuteScalar();
            //dbCommand.Dispose();
            //Close();
            return result;
        }
    }
}

 

标签:帮助,return,string,DbConnection,数据库,System,static,mysql,public
From: https://www.cnblogs.com/cxyyn/p/17777462.html

相关文章

  • mysql常用报表处理及数据迁移写法SQL
    熟悉一些常用的sql写法便于工作中快速导出数据,本文不涉及到业务,所以对表库做了名字的修改,仅提供一些用法的说明。以下直接举例子并讲解1单表批量数据迁移场景:日志迁移具体实例:将test_log2日志表2的数据全部迁移到test_log1日志表1sql:......
  • MySQL 命令行 导出数据 加状态判断 导出excel格式
      SELECTuser.userid,department.`name`,user.username,user.name,user.`email`,keyusage.`productname`,keyusage.`status`,(casewhenkeyusage.status=1then'申请激活'whenkeyusage.status=2then'激活成功'else'激活失败'end)asflag,IN......
  • mongo 数据库
    在MongoDB中进行数据库操作的基本命令如下:创建数据库:MongoDB使用时会自动创建数据库,只需通过插入文档或创建集合来创建数据库。切换数据库:使用use<database-name>命令可以切换到指定的数据库,如果该数据库不存在,MongoDB会在插入文档或创建集合时自动创建它。删除数据......
  • Redis的速度不够用?为什么你应该考虑使用 KeyDB,一个更快、更强大、更灵活的开源数据库
    你是否正在使用 Redis 作为您的数据结构存储,享受它的高性能、高可用的特性?如果是这样,那么你可能会对 KeyDB 感兴趣。什么是 KeyDB?KeyDB 一个由 Snap 提供支持、专为扩展而构建的开源数据库。它是 Redis 的高性能分支,专注于多线程、内存效率和高吞吐量。KeyDB 采用 M......
  • Windows Python 访问达梦数据库(环境配置)
    WindowsPython访问达梦数据库(环境配置) 一、前提条件本篇博客以访问本地达梦数据库(DM8)为基础进行演示。(前提:本地已经安装了DM8数据库!)关于Windows安装达梦数据库,请参考博客:Windows安装达梦数据库关于Docker安装达梦数据库,请参考博客:Docker安装达梦数据库关于JD......
  • mysql SQL优化的常用手段有哪些?
    mysqlSQL优化的手段有哪些?1.explain输出执行计划2.in和notin要慎用3.少用select*4.where及orderby涉及的列上建立索引,如果排序字段没有用到索引,就尽量少排序5.可以在程序中排序。6.where子句中避免isnull/isnotnull,7.应尽量避免在where!=或<>or,函数操作......
  • Mysql三大存储引擎
    1、MyISAM(对事务支持不好,容易产生死锁)在5.5版本以前是数据库的默认存储引擎。MyISAM不支持事务和外键,适用于对事务完整性没有要求或者以select、insert为主的应用 2、InnoDB(对事务支持好)InnoDB提供了具有提交、回滚和崩溃恢复能力的事务安全。对比MyISAM写的......
  • OnTheSSH使用帮助
                            ......
  • jfinal框架下,连接国产达梦数据库,抛出SocketTimeoutException异常
    公司为政府开发项目,主框架选择springboot,orm框架使用jfinal。数据库为国产达梦数据库写统计类服务时,通常sql运行时间会比较久,超过10s的sql一定会报SocketTimeoutException异常 尝试使用原生jdbc创建连接,运行sql毫无问题。遂检查连接池设置。jfinal使用druid连接池网上搜索......
  • Ubuntu 安装MySql
    1.安装sudoaptinstallmysql-serversudoaptinstallmysql-cient启动服务:windows启动:netstartmysql服务名停止:netstopmysql服务名mac启动:mysql.serverstart停止:mysql.serverstoplinux:关闭mysql服务:servicemysqlstop启动mysql服务:servicemysql......