Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > บทความจากสมาชิก > ทำ Form Login บน Windows Form Application ง่าย ๆ ด้วย VB.NET และ C#



 
Clound SSD Virtual Server

ทำ Form Login บน Windows Form Application ง่าย ๆ ด้วย VB.NET และ C#

Login Form บน Windows Form Application (.NET) บทความ.NET สอนการสร้าง Login Form บน Windows Form แบบง่าย ๆ มีตัวอย่างทั้ง VB.NET และ C# เห็นถามกันมาบ่อย ๆ ในกระทู้ วันนี้มีโอากาสเลยจัดให้ซะหน่อย คงจะไม่ช้าเกินไป สำหรับบทความนี้ และคิดว่าคงจะมีประโยชน์ เพราะวิธีการทำมันง่าย ๆ ไม่มีอะไรซับซ้อน

ตัวอย่างนี้มีทั้งภาษา VB.NET และ C#

Form Login บน Windows Form Application

ความสามารถของ Script
- Form Login ตรวจสอบ Username และ Password
- Form Main แสดงข้อมูลผู้ Login

ฐานข้อมูล Databaset
ในตัวอย่างนี้ใช้ฐานข้อมูล Access Database ถ้าต้องการใช้กับฐานข้อมูลอื่น ๆ อ่านได้ในส่วนของท้ายบทความ

Form Login บน Windows Form Application

เริ่นต้นด้วยการสร้างโปรเจคบน Visual Studio เลือกเป็น Windows Forms Application

โครงสร้างตาราง

Form Login บน Windows Form Application

สร้างตารางชื่อ member

Form Login บน Windows Form Application

ข้อมูลของสมาชิกมี Username และ Password








โครงสร้างไฟล์

Form Login บน Windows Form Application

- database.mdb (เป็นฐานข้อมูล)
- frmLogin.vb หรือ frmLogin.cs เป็น Screen Login
- frmMenu.vb หรือ frmMenu.cs เป็น Sscreen Main หลังจาก Login แล้ว


frmMenu.vb หรือ frmMenu.vb

Form Login บน Windows Form Application


frmMenu.vb หรือ frmMenu.cs

Form Login บน Windows Form Application





Code สำหรับภาษา VB.NET

frmLogin.vb
Imports System.Data.OleDb
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 OleDbConnection
        Dim objCmd As New OleDbCommand
        Dim strConnString, strSQL As String
        Dim directory As String = My.Application.Info.DirectoryPath

        strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & "\database.mdb;Jet OLEDB:Database Password=;"
        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 OleDbCommand(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 System.Data.OleDb
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 OleDbConnection
        Dim objCmd As New OleDbCommand
        Dim dtAdapter As OleDbDataAdapter
        Dim dt As New DataTable
        Dim strConnString, strSQL As String
        Dim directory As String = My.Application.Info.DirectoryPath


        strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & "\database.mdb;Jet OLEDB:Database Password=;"
        objConn.ConnectionString = strConnString
        objConn.Open()

        strSQL = "SELECT * FROM member WHERE Username = '" & strUser & "' "

        dtAdapter = New OleDbDataAdapter(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 System.Data.OleDb;
using System.IO;

namespace LoginFormCS
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            OleDbConnection objConn = new OleDbConnection();
            OleDbCommand objCmd = new OleDbCommand();
            string strConnString = null;
            string strSQL = null;
            string directory = Path.GetDirectoryName(Application.ExecutablePath);

            strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + directory + "\\database.mdb;Jet OLEDB:Database Password=;";
            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 OleDbCommand(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 System.Data.OleDb;
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()
        {
            OleDbConnection objConn = new OleDbConnection();
            OleDbCommand objCmd = new OleDbCommand();
            OleDbDataAdapter dtAdapter = default(OleDbDataAdapter);
            DataTable dt = new DataTable();
            string strConnString = null;
            string strSQL = null;
            string directory = Path.GetDirectoryName(Application.ExecutablePath);


            strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + directory + "\\database.mdb;Jet OLEDB:Database Password=;";
            objConn.ConnectionString = strConnString;
            objConn.Open();

            strSQL = "SELECT * FROM member WHERE Username = '" + strUser + "' ";

            dtAdapter = new OleDbDataAdapter(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

Form Login บน Windows Form Application

หน้าจอ Login

Form Login บน Windows Form Application

หน้าจอเมื่อ Login ผิดพลาด

Form Login บน Windows Form Application

หน้าจอเมื่อ Login ถูกต้อง จะแสดงข้อมูลที่ที่ได้ทำการ Login เข้ามาในระบบ

หรือจะ Download Code ไปศึกษา
Download here!!



ใช้ร่วมกับ Database อื่น ๆ
กรณีที่ต้องการใช้กับ Database อื่น ๆ เช่น MySQL, SQL Server , Oracle , Odbc หรืออื่น ๆ ก็สามารถทำได้โดยไม่ยากเช่นเดียวกัน โดยสามารถศึกษาการใช้งาน ADO.NET กับ Database อื่น ๆ ได้ที่
- MySQL Database MySql.Data.MySqlClient
- Oracle Database System.Data.OracleClient
- SQL Server System.Data.SqlClient
- Odbc System.Data.Odbc
- OleDb System.Data.OleDb

ตัวอย่างการดัดแปลงใช้กับ SQL Server

Imports System.Data.SqlClient
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 SqlConnection
        Dim objCmd As New SqlCommand
        Dim strConnString, strSQL As String

        strConnString = "Server=IP/Server;UID=sa;PASSWORD=;Database=database;Max Pool Size=400;Connect Timeout=600;"
        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 SqlCommand(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


คำอธิบาย
จะเห็นว่ามีการเปลี่ยนแปลงไม่กี่จุด เช่น

Imports System.Data.OleDb
เป็น
Imports System.Data.SqlClient

และพวก Class ต่าง ๆ ที่เป็น OleDb ให้เปลี่ยนเป็น Sql
OleDbConnection
เป็น
SqlConnection

และก็ ConnectionString ของ Database แต่ล่ะตัว


เพิ่มเติม
ตัวอย่างนี้เขียนบน Visual Studio 2008 (.NET 3.x) แต่สามารถนำไปใช้กับ .NET ทุกเวอร์ชั่นครับ



บทความอื่น ๆ ที่เกี่ยวข้อง
Go to : .NET Windows Form Application เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework
Go to : VB.NET/C# MySQL (ADO.NET) พื้นฐานการ เขียนโปรแกรม ADO.NET เชื่อมต่อกับฐานข้อมูล MySQL
Go to : VB.NET/C# Connect to SQL Server Using ADO.NET พื้นฐานกับ SQL Server and ADO.NET
Go to : ADO.NET and Oracle (VB.NET/C#) เขียนโปรแกรมติดต่อกับฐานข้อมูล Oracle Database


   
Share
Bookmark.   

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2012-02-27
  Download : No files
Sponsored Links
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่