Mysql的使用

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。

与sqlserver 的差别:

mysql开源,sqlserver不开源。

mysql可以搭配几乎任何语言开发常用的php,  sqlserver 最好使用.net。

mysql语法相比复杂些。

mysql查询中途不能取消。

mysql在备份需要通过语句备份成脚本,会堵塞用户的使用。

1.下载mysql MySQL :: Download MySQL Community Server

2.安装数据库(网上找安装教程),这个只是数据库服务,并没有可视化工具 不像sqlserver,后面可视化工具使用Navicat Premium 16。

3.配置环境变量。为什么要配置环境变量:

    全局使用(就是在哪都能直接使用mysql命令不用cd到mysql安装包下)

    检查命令

4.windows下cmd常用命令  :   命令后面记得加    ;

//MySQL查询版本的命令
SELECT VERSION();
//登录mysql  会提示输入密码
mysql -u root -p
//查看所有数据库
show databases;
//选中库
use mydatabase;
//看该库下的所有表
show tables;
//查询表
select  *from t_class;

使用大部分与sqlserver 命令差不多  可以网上查询使用;

5.在Asp.net中访问mysql;

   a添加上面的引用;

   b编写MySQLHelper

using System;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;

public class MySQLHelper
{
    private string connectionString;

    public MySQLHelper(string connectionString)
    {
        this.connectionString = "server=localhost;port=3306;user id=root;password=123456;database=mydatabase";
    }

    // 执行不返回结果集的SQL语句
    public int ExecuteNonQuery(string sql, params MySqlParameter[] parameters)
    {
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            using (MySqlCommand command = new MySqlCommand(sql, connection))
            {
                // 添加参数
                //command.Parameters.AddRange(parameters);
                // 打开连接
                connection.Open();
                // 执行SQL语句并返回影响行数
                return command.ExecuteNonQuery();
            }
        }
    }

    // 执行一个查询,并返回结果集中第一行的第一列
    public object ExecuteScalar(string sql, params MySqlParameter[] parameters)
    {
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            using (MySqlCommand command = new MySqlCommand(sql, connection))
            {
                // 添加参数
                command.Parameters.AddRange(parameters);
                // 打开连接
                connection.Open();
                // 执行SQL查询并返回第一行第一列的值
                return command.ExecuteScalar();
            }
        }
    }

    // 执行一个查询,并返回结果集
    public DataTable ExecuteQuery(string sql, params MySqlParameter[] parameters)
    {
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            using (MySqlCommand command = new MySqlCommand(sql, connection))
            {
                // 添加参数
                //command.Parameters.AddRange(parameters);
                // 打开连接
                connection.Open();
                // 创建DataAdapter和DataTable对象,并填充数据
                using (MySqlDataAdapter adapter = new MySqlDataAdapter(command))
                {
                    DataTable dataTable = new DataTable();
                    adapter.Fill(dataTable);
                    return dataTable;
                }
            }
        }
    }

    // 执行一个查询,并将结果集映射到一个对象列表
    public List<T> ExecuteQuery<T>(string sql, Func<IDataRecord, T> selector, params MySqlParameter[] parameters)
    {
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            using (MySqlCommand command = new MySqlCommand(sql, connection))
            {
                // 添加参数
                command.Parameters.AddRange(parameters);
                // 打开连接
                connection.Open();
                // 创建DataReader对象并读取数据,将每行数据映射到对象并添加到列表中
                using (MySqlDataReader reader = command.ExecuteReader())
                {
                    List<T> list = new List<T>();
                    while (reader.Read())
                    {
                        list.Add(selector(reader));
                    }
                    return list;
                }
            }
        }
    }

    // 向数据库中插入数据
    public int Insert(string tableName, Dictionary<string, object> data)
    {
        string[] columns = new string[data.Count];
        object[] values = new object[data.Count];

        int i = 0;
        foreach (KeyValuePair<string, object> item in data)
        {
            // 获取列名和值
            columns[i] = item.Key;
            values[i] = item.Value;
            i++;
        }

        string sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName, string.Join(",", columns), "@" + string.Join(",@", columns));

        // 将Dictionary转换为MySqlParameter数组,并执行SQL语句
        return ExecuteNonQuery(sql, ToMySqlParameters(data));
    }

    // 更新数据库中的数据
    public int Update(string tableName, Dictionary<string, object> data, string whereClause = "")
    {
        string[] setValues = new string[data.Count];
        int i = 0;
        foreach (KeyValuePair<string, object> item in data)
        {
            // 获取列名和值
            setValues[i] = string.Format("{0}=@{0}", item.Key);
            i++;
        }

        string sql = string.Format("UPDATE {0} SET {1}", tableName, string.Join(",", setValues));

        if (!string.IsNullOrEmpty(whereClause))
        {
            sql += " WHERE " + whereClause;
        }

        // 将Dictionary转换为MySqlParameter数组,并执行SQL语句
        return ExecuteNonQuery(sql, ToMySqlParameters(data));
    }

    // 删除数据库中的数据
    public int Delete(string tableName, string whereClause = "")
    {
        string sql = string.Format("DELETE FROM {0}", tableName);

        if (!string.IsNullOrEmpty(whereClause))
        {
            sql += " WHERE " + whereClause;
        }

        // 执行SQL语句并返回影响

        return ExecuteNonQuery(sql);
    }
    // 将Dictionary转换为MySqlParameter数组
    private MySqlParameter[] ToMySqlParameters(Dictionary<string, object> data)
    {
        List<MySqlParameter> parameters = new List<MySqlParameter>();

        foreach (KeyValuePair<string, object> item in data)
        {
            parameters.Add(new MySqlParameter("@" + item.Key, item.Value));
        }

        return parameters.ToArray();
    }
}

c调用

public ActionResult Index()
        {
            try
            {
                MySQLHelper ms = new MySQLHelper("");
                ms.ExecuteNonQuery("INSERT into t_student values(6, '周杰伦', 15, 1);", null);
                DataTable dt = ms.ExecuteQuery("select *from t_student;", null);
            }
            catch (Exception E)
            {
                string A = E.Message;
            }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值