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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • STM32笔记之 NVIC(嵌套向量中断控制器)[通俗易懂]

    STM32笔记之 NVIC(嵌套向量中断控制器)[通俗易懂]写在前面:本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。目录一、NVIC简单解释二、抢占优先级与子优先级三、抢占优先级和子优先级的区分(白话文)四、NVIC配置分析在STM32笔记之EXIT(外部中断)篇章中,已经了解到EXIT的配置,但是…

    2022年5月27日
    396
  • 软件工厂简介「建议收藏」

    软件工厂简介「建议收藏」摘要:简要介绍Microsoft开发软件工厂这种方法的动机。所谓软件工厂就是指为了支持某种特定应用程序的快速开发而配置的开发环境。软件工厂从逻辑上讲就是软件开发方法和实践的下一个发展阶段。然而,通过引入产业化模式,软件工厂势必会改变软件行业的现状。扩大软件开发的规模从目前的情况来看,软件开发的速度缓慢、代价高昂而又极易出错,常常会生产出存在大量缺陷的产品,在可用性、可靠性、性能、安全

    2025年8月26日
    6
  • 19种电压转换的电路设计方式

    19种电压转换的电路设计方式标准三端线性稳压器的压差通常是2.0-3.0V。要把5V可靠地转换为3.3V,就不能使用它们。压差为几百个毫伏的低压降(LowDropout,LDO)稳压器,是此类应用的理想选择。图1-1是基本LDO系统的框图,标注了相应的电流。从图中可以看出,LDO由四个主要部分组成:技巧一:使用LDO稳压器,5V向3.3V系统供电标准三端线性稳压器的压差通常是2.0-3.0V。要把5V可靠地转换为3.3V,就不能使用它们。压差为几百个毫伏的低压降(LowD…

    2022年6月2日
    36
  • usb转rs485测试软件,usb转rs485驱动程序

    usb转rs485测试软件,usb转rs485驱动程序usb转rs485线必须安装usb转rs485驱动程序才可以正常使用,而本次发布的这个usb转rs485驱动,就是那个东东啦。USB转485驱动程序官方版发布。。驱动压缩包中此外还包含了USB编程电缆驱动程序安装说明-485.doc,喜欢的小伙伴可以下载使用。USB转RS485串口驱动PL2303,适合WIN7/WINXP/LINUX等系统。usb转485转换器线驱动安装方法:1、在安装前可以…

    2022年4月28日
    34
  • VS 环境使用MySQL Connector C 6.1 连接数据库

    VS 环境使用MySQL Connector C 6.1 连接数据库下载MySQLConnector/C,根据你的系统版本选择下载ZIPARCHIVE,下载链接 配置附加目录和库目录 项目–>属性–>配置属性–>VC++目录-包含目录中加入mysqlConnectC文件的include目录(根据自己的目录设置,此处测试使用了绝对路径) C:\Users\kelvin\Downloads\mysql-connector-c-…

    2022年7月15日
    15
  • 无线网首选dns服务器怎么设置,怎么设置无线路由器dns

    无线网首选dns服务器怎么设置,怎么设置无线路由器dnsDNS在平时上网中扮演重要角色,如果不注意DNS的话,可能会导致网速慢、弹窗广告、网址打不开、打开不是自己想要的网站、劫持等一系列问题,设置好无线路由器的dns尤为重要,下面是学习啦小编整理的设置无线路由器dns的方法,供您参考。设置无线路由器dns的方法首先打开浏览器,然后在网址栏输入192.168.1.1,然后按回车键确认打开,之后就会弹出路由器登录界面。之后输入路由器登录用户名与密码,TP-…

    2022年5月20日
    111

发表回复

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

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