程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#基於MySql驅動(VS2012)操作MariaDB

C#基於MySql驅動(VS2012)操作MariaDB

編輯:C#入門知識

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了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved