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