| 
  
  
     
      |  
         
          
            | 
		 
		         
   
    |  
        VB.NET/C# MySQL (ADO.NET) พื้นฐานการ เขียนโปรแกรม ADO.NET เชื่อมต่อกับฐานข้อมูล MySQL       |  |  |   
            |  | VB.NET/C# MySQL (ADO.NET) พื้นฐานการ เขียนโปรแกรม ADO.NET เชื่อมต่อกับฐานข้อมูล MySQL บทความ ADO.NET กับ MySQL เห็นถามกันบ่อย ๆ ว่าสามารถติดต่อในรูปแบบใดบ้าง ซึ่งอันที่จริงแล้วใน ADO.NET รูปแบบคำสั่งพวกนี้แทบจะไม่ต่างกันเลย เพียง แค่เปลี่ยน Namespace และ Connection String ท่านั้น สำหรับ ADO.NET กับ MySQL ที่นิยมใช้จะมีอยู่ 2 ตัว ตัวแรกคือ System.Data.Odbc อันนี้มีมาพร้อมกับ .NET Framework สามารถเรียกใช้งานได้ในทันที แต่จะต้องติดตั้งโปรแกรม Driver  MyOdbc เพื่อติดต่อกับฐานข้อมูล  MySQL  และตัวที่สองคือ MySql.Data.SqlClient ซึ่งตัวนี้จะต้องไปหาดาวน์โหลด NameSpace ชื่อ MySql.Data.dll มาเพื่อ Add Reference เสียก่อน  แต่ที่แนะนำให้ใช้ก็คือ  MySql.Data.SqlClient เหตุผลเพราะไม่ต้องติดตั้ง Driver เพิ่ม และ Function บางตัวได้ถูกออกแบบมาเพื่อ ให้ทำงานได้กับ MySQL โดยเฉพาะ อีกครั้งยังสามารถทำงานได้เร็วกกว่าการเชื่อมต่อผ่าน Odbc ได้อีกด้วย 
 สำหรับ ADO.NET กับ MySQL ผ่าน Odbc (System.Data.Odbc) สามารถอ่านได้ที่นี่ มีทั้ง VB.NET และ C#
 
 
 ADO.NET กับ MySql.Data.MySqlClient Connector  ให้ดาวน์โหลด MySql.Data.dll ได้ที่นี่
 
 
 หลังจากได้ MySql.Data.dll แล้วให้ Add Reference ดังตัวอย่าง
 
 
  
 คลิกขวาที่ Project เลือก Add Reference
 
 
 
  
 Browse โฟเดอร์ที่จดัเก็บไฟล์ เลือก MySql.Data.dll เหมือนในตัวอย่าง
 
 
 
  
 เมื่อทำการ Imports ก็จะเห็น Namespace ของ MySql.Data แสดงออกมาดังรูป
 
 
 อันนี้ตารางของ MySQL
 
 
CREATE TABLE `member` (
  `CustomerID` varchar(4) NOT NULL,
  `Username` varchar(30) NOT NULL,
  `Password` varchar(30) NOT NULL,
  `Name` varchar(50) NOT NULL,
  `Email` varchar(50) NOT NULL,
  `CountryCode` varchar(2) NOT NULL,
  `Budget` double NOT NULL,
  `Used` double NOT NULL,
  PRIMARY KEY  (`CustomerID`),
  UNIQUE KEY `Email` (`Email`),
  KEY `CountryCode` (`CountryCode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- 
-- Dumping data for table `member`
-- 
INSERT INTO `member` VALUES ('C001', 'win', 'win123', 'Win Weerachai', '[email protected]', 'TH', 1000000, 600000);
INSERT INTO `member` VALUES ('C002', 'john', 'john123', 'John  Smith', '[email protected]', 'EN', 2000000, 800000);
INSERT INTO `member` VALUES ('C003', 'jame', 'jame123', 'Jame Born', '[email protected]', 'US', 3000000, 600000);
INSERT INTO `member` VALUES ('C004', 'chalee', 'chalee123', 'Chalee Angel', '[email protected]', 'US', 4000000, 100000);
 
 
  
 
 
 MySql Connection String
 
 Server=localhost;User Id=root; Password=root; Database=mydatabase; Pooling=false 
 อันนี้เป็น Connection String ของ MySQL กับ ADO.NET
 
 ตัวอย่างนี้จะประยุกต์ใช้กับ Form Login มีทั้ง VB.NET และ C#
 
 
 frmLogin.vb
 
 Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmLogin
    Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim objConn As New MySqlConnection
        Dim objCmd As New MySqlCommand
        Dim strConnString, strSQL As String
        strConnString = "Server=localhost;User Id=root; Password=root; Database=database; Pooling=false"
        objConn.ConnectionString = strConnString
        objConn.Open()
        Dim intNumRows As Integer
        strSQL = "SELECT COUNT(*) FROM member WHERE Username = '" & Me.txtUsername.Text & "' AND Password = '" & Me.txtPassword.Text & "' "
        objCmd = New MySqlCommand(strSQL, objConn)
        intNumRows = objCmd.ExecuteScalar()
        If intNumRows > 0 Then
            Dim frm As New frmMain
            frm._strUser = Me.txtUsername.Text
            frm.LoadInfor()
            frm.Show()
            Me.Hide()
        Else
            MessageBox.Show("Username or Password Incorrect")
        End If
        objConn.Close()
        objConn = Nothing
    End Sub
    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        If MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            Application.Exit()
        End If
    End Sub
End Class
 frmMenu.vb
 
 Imports MySql.Data.MySqlClient
Imports System.Data
Public Class frmMain
    Dim strUser As String
    Public Property _strUser() As String
        Get
            Return strUser
        End Get
        Set(ByVal value As String)
            strUser = value
        End Set
    End Property
    Public Sub LoadInfor()
        Dim objConn As New MySqlConnection
        Dim objCmd As New MySqlCommand
        Dim dtAdapter As MySqlDataAdapter
        Dim dt As New DataTable
        Dim strConnString, strSQL As String
        strConnString = "Server=localhost;User Id=root; Password=root; Database=database; Pooling=false"
        objConn.ConnectionString = strConnString
        objConn.Open()
        strSQL = "SELECT * FROM member WHERE Username = '" & strUser & "' "
        dtAdapter = New MySqlDataAdapter(strSQL, objConn)
        dtAdapter.Fill(dt)
        If dt.Rows.Count > 0 Then
            Me.lblUser.Text = strUser
            Me.lblName.Text = dt.Rows(0)("Name")
            Me.lblEmail.Text = dt.Rows(0)("Email")
        End If
        objConn.Close()
        objConn = Nothing
    End Sub
    Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
        Dim frm As New frmLogin
        frm.Show()
        Me.Hide()
    End Sub
End Class
 
 
 
 
 
 Code สำหรับภาษา C#
 
 frmLogin.cs
 
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
namespace LoginFormCS
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }
        private void btnLogin_Click(object sender, EventArgs e)
        {
            MySqlConnection objConn = new MySqlConnection();
            MySqlCommand objCmd = new MySqlCommand();
            string strConnString = null;
            string strSQL = null;
            strConnString = "Server=localhost;User Id=root; Password=root; Database=database; Pooling=false";
            objConn.ConnectionString = strConnString;
            objConn.Open();
            int intNumRows = 0;
            strSQL = "SELECT COUNT(*) FROM member WHERE Username = '" + this.txtUsername.Text + "' AND Password = '" + this.txtPassword.Text + "' ";
            objCmd = new MySqlCommand(strSQL, objConn);
            intNumRows = Convert.ToInt32(objCmd.ExecuteScalar());
            if (intNumRows > 0)
            {
                frmMain frm = new frmMain();
                frm._strUser = this.txtUsername.Text;
                frm.LoadInfor();
                frm.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("Username or Password Incorrect");
            }
            objConn.Close();
            objConn = null;
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                Application.Exit();
            }
        }
    }
}
 frmMenu.cs
 
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
namespace LoginFormCS
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        string strUser;
        public string _strUser
        {
            get { return strUser; }
            set { strUser = value; }
        }
        public void LoadInfor()
        {
            MySqlConnection objConn = new MySqlConnection();
            MySqlCommand objCmd = new MySqlCommand();
            MySqlDataAdapter dtAdapter = default(MySqlDataAdapter);
            DataTable dt = new DataTable();
            string strConnString = null;
            string strSQL = null;
            strConnString = "Server=localhost;User Id=root; Password=root; Database=database; Pooling=false";
            objConn.ConnectionString = strConnString;
            objConn.Open();
            strSQL = "SELECT * FROM member WHERE Username = '" + strUser + "' ";
            dtAdapter = new MySqlDataAdapter(strSQL, objConn);
            dtAdapter.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                this.lblUser.Text = strUser;
                this.lblName.Text = dt.Rows[0]["Name"].ToString();
                this.lblEmail.Text = dt.Rows[0]["Email"].ToString();
            }
            objConn.Close();
            objConn = null;
        }
        private void btnBack_Click(object sender, EventArgs e)
        {
        frmLogin frm = new frmLogin();
        frm.Show();
        this.Hide();
        }
    }
}
 
 Screenshot
 
 
  
 หน้าจอ Login
 
 
  
 แสดง Screen หลังจาก Login เรียบร้อยแล้ว
 
 Download Code!!
 
 
 
 
 บทความอื่น ๆ ที่เกี่ยวข้อง
 Go to : ASP.NET MySql.Data.MySqlClient
 Go to : ASP.NET MySQL (MySql.Data.MySqlClient)
 Go to : .NET Windows Form Application  เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework
 
 
 
 
  
    |  |  |  |  |  
    |  |  |  |  |  
    |  |  |  |  |  
 |  |  
 
            
              | 
                  
                    |  |  
                    |  | By : | TC Admin |  
                    |  | Score Rating : | - |  
                    |  | Create Date : | 2012-03-09 10:21:05 |  
                    |  | Download : | No files |  
                    |  |  |  |  |  
 
 |  |   |