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)
上一篇 2022年7月15日 下午9:46
下一篇 2022年7月15日 下午10:00


相关推荐

  • 偏最小二乘法

    偏最小二乘法偏最小二乘回归是一种新型的多元统计数据分析方法,它与1983年由伍德和阿巴诺等人首次提出。近十年来,它在理论、方法和应用方面都得到了迅速的发展。密西根大学的弗耐尔教授称偏最小二乘回归为第二代回归分析方法。偏最小二乘回归方法在统计应用中的重要性主要的有以下几个方面:(1)偏最小二乘回归是一种多因变量对多自变量的回归建模方法。(2)偏最小二乘回归可以较好地解决许多以往用普通多元回归无法解决

    2022年5月16日
    42
  • MT4-EA自动化交易研究笔记(2022-04-23)

    MT4-EA自动化交易研究笔记(2022-04-23)目录昨日交易总体情况昨日EA更新内容待解决问题/对于交易策略的思考当前在用的EA介绍昨日交易总体情况实盘(第一张)与模拟盘(第二张)盈利情况对比图存在问题及分析昨天的实盘收益又是只有模拟盘的一半,原因还是对自己的交易系统不够自信,怕出现大行情大亏而根据自己的经验只跟了部分信号,有些信号开单前我把自动EA给关闭了,事后证明那些信号都是对的。昨天模拟盘是全程开着自动EA,无人工干预的,对于下午的那场大跌,虽然开仓有点早,而且是反向的,不过经过我的加仓策略,最终还是盈利出…

    2022年5月30日
    42
  • chkdsk命令修复磁盘没反应_chkdsk怎么修复c盘

    chkdsk命令修复磁盘没反应_chkdsk怎么修复c盘故障笔记本电脑进不了系统,XP系统的开机进度条一走完蓝屏画面一闪就自己重启了,试了安全模式与最后一次正确配置都是一样的情况,据笔记本的主人说想一键还原也不行(装有GHOST一键还原)。使用PE工具盘启动笔记本,进入“我的电脑”一看,C盘信息全没了,没有已用空间大小,也没有可用空间大小,连C盘大小也没有了,格式变成RAW,但是用工具盘上的DiskGenius却可以看到里面的文件,也可以看到C盘是NT…

    2025年7月15日
    5
  • sorcket java_Karate:让Web服务测试变得简单

    sorcket java_Karate:让Web服务测试变得简单The0 9 0releaseisab Karatenolong fileparseran enginewerere writtenfroms 100 backwardscom

    2026年3月16日
    2
  • wake on lan 远程唤醒/远程开机中的所有设置细节(arp静态绑定解决长时间关机无法唤醒)

    wake on lan 远程唤醒/远程开机中的所有设置细节(arp静态绑定解决长时间关机无法唤醒)远程开机这个功能实在屌爆了,工作中会经常遇到需要远程开机的情景,比如说,晚上在家里,突然接到领导的电话需要改东西,然而家里的电脑又没有工作环境,各种工具软件都没有安装,这时如果往公司跑一趟真是麻烦,或者需求等不及你往公司跑一趟,也许这途中公司会损失更多。或者,晚上在家里工作了,第二天忘记把资料带回公司,这时远程开机也显得尤为重要。总之,如果你有远程办公的需求,就会用到远程开机。

    2022年5月22日
    45
  • 装上这 8 个插件,PyCharm才真的是无敌的存在!

    装上这 8 个插件,PyCharm才真的是无敌的存在!给IT入门加星标,提升编程技能ChinesePlugin经常听到很多初学者抱怨说,PyCharm怎么是全英文的?学起来好难啊。在以前,我会跟他们说,学习编程语言,英文是一项非常重要的能…

    2022年6月24日
    35

发表回复

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

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