MySQL Connector/Net 的简单使用「建议收藏」

MySQL Connector/Net 的简单使用「建议收藏」IDE:vs2022Targetframework:.net6.0首先,新建工程(WindowsApplication)然后,在NuGet中获取MySQL连接器(.netcore)Project-》ManageNuGetPackages之后,放置控件3个TextBox,2个ComboBox(cBoxDBs和cBoxTables)等等密码框设置下拉框设置(cBoxDBs:数据库,cBox

大家好,又见面了,我是你们的朋友全栈君。

首先,新建工程(Windows Forms App)

MySQL Connector/Net 的简单使用「建议收藏」

选择Target framework: .net 6.0

MySQL Connector/Net 的简单使用「建议收藏」

然后,在NuGet中获取MySQL连接器(.net core)

Tools-》NuGet Package Manager-》Package Manager Console

PM> Install-Package MySql.Data

        之后,放置控件

        3个TextBox,2个ComboBox(cBoxDBs和cBoxTables)等等

 MySQL Connector/Net 的简单使用「建议收藏」

密码框设置

MySQL Connector/Net 的简单使用「建议收藏」

下拉框设置(cBoxDBs:数据库,cBoxTables:数据表)

最后,添加dataGridView。

最后效果:

MySQL Connector/Net 的简单使用「建议收藏」

        运行效果:

MySQL Connector/Net 的简单使用「建议收藏」

源代码

链接: https://pan.baidu.com/s/16_9ax3817Y9bqt6FLu_GWA?pwd=sam2

    Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace testMySQL
{
    public partial class Form1 : Form
    {
        private MySqlConnection conn;
        private DataTable table;
        private MySqlDataAdapter dataAdapter;
        private MySqlCommandBuilder sqlCmdBuilder;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnConn_Click(object sender, EventArgs e)
        {
            //
            string connStr = string.Format(
                "server={0}; user id={1}; password={2}; database=mysql; pooling=false",
                edtSrv.Text, edtUser.Text, edtPwd.Text);
            try
            {
                conn = new MySqlConnection(connStr);
                conn.Open();

                // 获得数据库列表
                List<string> cmd = new List<string>();
                cmd.Add("SHOW DATABASES");
                List<string> list = getDataList(cmd);

                // 清空下拉框
                cBoxDBs.Items.Clear();
                // 增加下拉框列表
                foreach (string str in list)
                    cBoxDBs.Items.Add(str);

            }
            catch (MySqlException ex)
            {
                MessageBox.Show("没有找到数据库: " + ex.Message);
            }
        }

        private List<string> getDataList(List<string> cmdList)
        {
            List<string> result = new List<string>();

            // SQL数据读取器
            MySqlDataReader dataReader = null;

            // SQL命令执行器
            MySqlCommand sqlCmd = new MySqlCommand();

            // 设置SQL命令执行器的连接
            sqlCmd.Connection = conn;

            try
            {
                // 执行的SQL命令
                foreach (string cmd in cmdList)
                {
                    sqlCmd.CommandText = cmd;
                    sqlCmd.ExecuteNonQuery();
                }
                //   
                dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    string strDbName = dataReader.GetString(0);

                    result.Add(strDbName);
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("读取数据失败: " + ex.Message);
            }
            finally
            {
                if (dataReader != null)
                    dataReader.Close();
            }
            return result;
        }

        private void cBoxDBs_SelectedIndexChanged(object sender, EventArgs e)
        {
            // 获得数据库列表
            List<string> cmdList = new List<string>();
            cmdList.Add("USE " + cBoxDBs.SelectedItem.ToString());
            cmdList.Add("SHOW TABLES");
            List<string> list = getDataList(cmdList);

            // 清空数据库列表
            cBoxTables.Items.Clear();
            // 增加下拉框列表
            foreach (string str in list)
                cBoxTables.Items.Add(str);
        }

        private void cBoxTables_SelectedIndexChanged(object sender, EventArgs e)
        {
            // 获得数据表名称
            string tableName = cBoxTables.SelectedItem.ToString();
            // 设置数据桥
            dataAdapter = new MySqlDataAdapter("Select * from " + tableName, conn);

            // DataSet
            sqlCmdBuilder = new MySqlCommandBuilder(dataAdapter);
            // 建立数据表
            table = new DataTable(tableName);
            // 填充数据表到数据桥
            dataAdapter.Fill(table);

            // 指定数据源
            dataGridView1.DataSource = table;
        }
    }
}

FAQ:

1. Unable to convert MySQL date/time value to System.DateTime

   出现原因:

   DateTime列含有“0000-00-00”(YYYY-mm-dd)或者“0000-00-00 00:00:00”(YYYY-mm-dd HH:mm:ss)数据

MySQL Connector/Net 的简单使用「建议收藏」

   解决办法:

           增加“Convert Zero Datetime=True”

server={0}; user id={1}; password={2}; database=mysql; pooling=false; Convert Zero Datetime=True

2. 版本迁移

复制Form1.cs和Form1.Designer.cs两个文件即可。

3. Interop type cannot be embedded

MySQL Connector/Net 的简单使用「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159517.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10如何安装iis_装win10配置要求

    win10如何安装iis_装win10配置要求Win10下IIS配置1.找到控制面板:【开始】菜单鼠标右击,打开【控制面板】2.打开控制面板,点击【程序】,点击【启用或关闭Windows功能】下一步,点击【启用虎关闭Windows功能】3.开始修改IIS了,我是这样勾上的,有可能比较多。4.验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输……

    2025年8月22日
    2
  • 点击轮播图片左右button,实现轮播效果

    点击轮播图片左右button,实现轮播效果

    2022年1月24日
    53
  • srvctl start_局部视图的配置规定是

    srvctl start_局部视图的配置规定是SRVCTL概述SRVCTL是ORACLERAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和NodeApplication,NodeApplication包括GSD,ONS,VIP。srvctl的命令格式为srvctl<command><target>[options]srvctlUs…

    2025年10月31日
    3
  • python encode和decode的区别_encode和decode的区别

    python encode和decode的区别_encode和decode的区别字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。e…

    2022年10月7日
    2
  • 全是精华的模电专题复习资料:基本放大电路知识点

    全是精华的模电专题复习资料:基本放大电路知识点目录一、BJT组成的基本放大电路二、FET组成的基本放大电路一、BJT组成的基本放大电路根据上图解答以下三个问题:1、最大不失真输出电压:Uom=2、三种组态之间的性能差异:3、分析任何放大电路均为先静态Q、后动态Au、Ri、Ro。二、FET组成的基本放大电路…

    2022年6月20日
    28
  • MPU9250传感器

    MPU9250内部包括3轴陀螺仪、3轴加速度计和3轴磁力计,这3个功能输出都是16位的数字量;可以通过常用的数据总线(IIC)接口和单片机进行数据交互,传输速率400kHz/s。陀螺仪的角速度测量范围±2000(°/s),具有良好的动态响应特性。加速度计的测量范围最大为±16g(g为重力加速度),静态测量精度高。磁力计采用高灵度霍尔型传感器进行数据采集,磁感应强度测量范围为±4800μT,可用于对偏航角的辅助测量。MPU9250自带的数字运动处理器DMP硬件加速引擎,可

    2022年4月8日
    197

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号