热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#程序使用MySQL驱动(vs2012)操作MariaDB演示代码

MariaDB最近越来越热,于是也下了个来捣腾捣腾。我下的是mariadb-10.0.4-win32.msi,但是安装完后,想用C#进行连接时,发现没有可以用的驱动。网上找了一番后,说是MaraiDB兼容MySQL,所以可以用MySql的驱动来连接。不过,有文提到MariaDB5.5相当于MySql的5.5
MariaDB最近越来越热,于是也下了个来捣腾捣腾。我下的是mariadb-10.0.4-win32.msi,但是安装完后,想用C#进行连接时,发现没有可以用的驱动。网上找了一番后,说是MaraiDB兼容MySQL,所以可以用MySql的驱动来连接。不过,有文提到MariaDB5.5相当于MySql的5.5,而MariaDB10.0.4相当于MySql5.6,而MySql现在已经是6.7了,所以下载MySql驱动的时候要特别注意,还有要注意的是mariadb是32还是64位的,搞错了,连接会出问题。

在下MySql驱动的时候本来想在官网下的,但是要帐号,所以就另找了个镜像点下。这是镜像点http://mirrors.sohu.com/mysql/Connector-Net/,我下的是mysql-connector-net-5.2.7。
下面是具体实现的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace MariaDBTest
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        MySqlConnection connection_;
        private void buttonOpenConnect_Click(object sender, EventArgs e)
        {
            string connectionStr = "server=localhost;user id=root;password=abc;database=test";
            connection_ = new MySqlConnection(connectionStr);
            connection_.Open();
            MessageBox.Show("Connect OK!");
        }
        private void buttonSelect_Click(object sender, EventArgs e)
        {
            if (connection_ == null)
            {
                MessageBox.Show("Please open connect!");
                return;
            }
            string sql = "SELECT * FROM MyTable";
            MySqlDataAdapter adapter = new MySqlDataAdapter(sql, connection_);
            DataTable dataTable = new DataTable();
            adapter.Fill(dataTable);
            dataGridViewMariaDB.DataSource = dataTable;
        }
        private void buttonCloseConnect_Click(object sender, EventArgs e)
        {
            if (connection_ != null)
            {
                connection_.Close();
                MessageBox.Show("Connect Close!");
            }
        }
        private void buttonInsert_Click(object sender, EventArgs e)
        {
            if (connection_ == null)
            {
                MessageBox.Show("Please open connect!");
                return;
            }
            int no = DateTime.Now.Second;
            int sum = DateTime.Now.Millisecond;
            string sql = string.Format("INSERT INTO MyTable (`NO`,`Sum`) VALUES({0},{1});", no, sum);
            MySqlCommand command = new MySqlCommand(sql, connection_);
            int affectLines = command.ExecuteNonQuery();
            MessageBox.Show("Affect " + affectLines.ToString() + " line");
        }
        private void buttonDelete_Click(object sender, EventArgs e)
        {
            if (connection_ == null)
            {
                MessageBox.Show("Please open connect!");
                return;
            }
            int no = Convert.ToInt32(textBoxNO.Text);
            string sql = string.Format("DELETE FROM MyTable WHERE `NO`={0}", no);
            MySqlCommand command = new MySqlCommand(sql, connection_);
            int affectLines = command.ExecuteNonQuery();
            MessageBox.Show("Affect " + affectLines.ToString() + " line");
        }
    }
}
这里有几点需要注意的:
1、用MySql操作的语言和操作MSSQL的语法没有太大的差异,但是SQL的语句有差异。在MSSQL中单引号用的是键盘上回车键左边单引呈键,而MariaDB中的单引号用的是键盘上数字键那一行最左边的键(数字1键的左边)。最开始被这个折腾惨了,后面经过比对后才发现的。
2、代码中所用的数据库test和MyTable需要自己建立。建立的方法可以通过HeidiSQL来操作。
3、要记得引用MySql.data.dll.
4、如果发现有MariaDB的语法不太理解,可以打开HeidiSQL,然后进行相应的操作,这时在下方会显示相应的代码,如我们插入了一些数据,下面会显示插入的SQL语句,然后把这个语句来到C#中用就OK了。

推荐阅读
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了如何在C#应用程序中有效隐藏SQLCMD命令行窗口,确保程序运行时不会弹出黑色命令提示符窗口。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • 本文详细介绍了 iBatis.NET 中的 Iterate 元素,它用于遍历集合并重复生成每个项目的主体内容。通过该元素,可以实现类似于 foreach 的功能,尽管 iBatis.NET 并未直接提供 foreach 标签。 ... [详细]
  • Ihaveastringwithquotesaroundthepathasfollows:我在路径周围有一个带引号的字符串,如下所示:C:\ProgramFiles(x ... [详细]
author-avatar
于华521_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有