Header Ads

C# Login Form সি শার্প প্রজেক্টে লগইন ফর্ম এর ব্যবহার

সি শার্প প্রজেক্টে লগইন ফর্ম এর ব্যবহার

সি শার্প টিউটোরিয়ালের এই পর্বে আমরা শিখব একটা কিভাবে প্রজেক্টে লগইন ফর্ম ব্যবহার করা হয়। আশাকরি একটা লগ ইন ফর্ম/পেইজে কি কি থাকে এবং কি কাজ করতে হয় সেগুলো সম্পর্কে আপনাদের ধারনা আছে।
যেহেতু সি শার্প সিরিজের ১ম পোষ্ট সি শার্প এবং মাইক্রোসফট অ্যাকসেস ডাটাবেইজ এ আমরা সি শার্পে মাইক্রোসফট অ্যাকসেস ডাটাবেইজ ব্যবহার করার একটা পদ্ধতি শিখেছি সেহেতু এই পোষ্টে ডাটাবেইজের সাথে সম্পর্কিত কাজগুলো আমরা অ্যাকসেস ডাটাবেইজ দিয়ে করব।
শুরুতে মাইক্রোসফট ভিজুয়্যাল স্টুডিও থেকে আমরা একটা নতুন একটা প্রজেক্ট তৈরি করব। সুবিধার জন্য নিচের ছবি দেখতে পারেনঃ
login form
পাসওয়ার্ডের জন্য আমরা চাইলে টেক্সটবক্সের অথবা মাস্কড টেক্সটবক্স ব্যবহার করতে পারি। তবে টেক্সটবক্স ব্যবহার করলে কোন সমস্যা নেই। পাসওয়ার্ড বক্সে স্টার দেখানোর জন্য মাস্কড টেক্সটবক্সের/টেক্সটবক্সের প্রোপার্টিজ থেকে “PassowordChar” ফিল্ডের ভ্যালু হিসাবে আমাদেরকে স্টার প্রেস করতে হবে। সুবিধার জন্য নিচের ছবি দেখতে পারেনঃ
masked textbox properties
এবার আমরা লগইন বাটনের জন্য কোড লিখব। এক্ষেত্রে ইউজার যখন তার ইউজার নেইম, পাসওয়ার্ড লিখে লগইন বাটনে ক্লিক করবে তখন ঐই ইউজার নেইমের কোন ডাটা আমাদের ডাটাবেইজে আছে কিনা দেখতে হবে। যদি থাকে তাহলে আমরা ডাটাবেইজ থেকে ঐই ইউজার নেইম এবং পাসওয়ার্ড দুইটা স্ট্রিং ভ্যারিয়েবলে কপি করে রাখব। তারপর আমাদেরকে দেখতে হবে বক্সে যে ইউজার নেইম, পাসওয়ার্ড দিয়েছে সেটা ডাটাবেইজ থেকে কপি করা ইউজার নেইম, পাসওয়ার্ড এর সাথে মিলছে কিনা।


যদি ইউজার নেইম, পাসওয়ার্ড মিলে যায় তাহলে আমরা ঐই ইউজারকে পরবর্তী কাজগুলো করতে দিব, আর যদি না মিলে তাহলে একটা এরর ম্যাসেজ দেখাব। ডাটাবেইজ থেকে ইউজার নেইম, পাসওয়ার্ড খোঁজার জন্য আমরা ইউজার নেইম টেক্সটবক্সে যে ইউজার নেইমটা দিয়েছে ঐইটা ব্যবহার করব।
মনেকরুন, আমাদের ফর্মে ইউজার নেইম টেক্সটবক্স টির নাম “textBox_username”, পাসওয়ার্ড মাস্কড টেক্সটবক্স টির নাম “maskedTextBox_pass” এবং লগইন বাটনের নাম “button1”। এজন্য সম্পূর্ন কোডটা হবেঃ
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Shop
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
        string name, pass;
        private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection connection = new OleDbConnection();
            connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
            Data Source=login.mdb;";
            connection.Open();
            try
            {
                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText = "SELECT * FROM LOG WHERE UName = \'"
                + textBox_username.Text.ToString() + "\'";
                OleDbDataReader Reader = command.ExecuteReader();
                while (Reader.Read())
                {
                    name = Reader[0].ToString();
                    pass = Reader[1].ToString();
                }
                connection.Close();
            }
            catch (OleDbException Ex)
            {
                MessageBox.Show(Ex.Message);
            }
            if((textBox_username.Text == name)&&(maskedTextBox_pass.Text == pass))
            {
                MessageBox.Show("Login Successful!!");
                Home newForm = new Home();
                newForm.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("User Name or Password Error!!");
            }
        }
    }
}
উপরের কোডে connection নামে আমরা একটা OleDbConnection ইন্সট্যান্স তৈরি করেছি। এরপর ConnectionString দিয়ে আমরা ডাটাবেইজের ড্রাইভার, এবং ডাটাবেইজের সোর্স ডিক্লায়ার করেছি।
ConnectionString এ ডাটাবেইজের সোর্স দেওয়ার সময় আমাদের খেয়াল রাখতে হবে যেন সোর্স ঠিক থাকে।
এরপর command নামে একটা OleDbCommand ইন্সট্যান্স তৈরি করেছি। command এর Connection ডিক্লায়ার করেছি, এবং command এর CommandText হিসেবে আমরা ডাটাবেইজের কুয়েরীটা ডিক্লায়ার করেছি। কুয়েরীটা অনেকটা নিচের কুয়েরীর মতঃ
"SELECT * FROM LOG WHERE UName = \'" + textBox_username.Text.ToString() + "\'";
এরপর Reader নামে একটা OleDbDataReader ইন্সট্যান্স তৈরি করেছি এবং ExecuteReader() ফাংশন দিয়ে কুয়েরীটা এক্সিকিউট করেছি। এটার কাজ হল যতক্ষণ পর্যন্ত এটা আমাদের কুয়েরীর শর্ত মেনে ডাটাবেইজ থেকে ডাটা পাবে ততক্ষণ পর্যন্ত সেই ডাটাগুলো Reader ইন্সট্যান্স এ সেইভ করবে। এই কাজটা আমরা while লুপ দিয়ে করেছি।
while (Reader.Read())
{
     name = Reader[0].ToString();
     pass = Reader[1].ToString();
}
একবার কুয়েরীটা এক্সিকিউট হবার সময় Reader টা প্রথমে যে ভ্যালুটা পাবে সেটা হল ইউজার নেইম এবং এরপর ২য় যে ভ্যালুটা পাবে সেটা হল পাসওয়ার্ড। আমরা এই দুইটা ভ্যালু name, pass স্ট্রিং ভ্যারিয়েবলে রেখেছি। যদি ডাটাবেইজে কোন সমস্যা থাকে কিংবা ডাটাবেইজ কানেকশনে কোন সমস্যা থাকে তাহলে catch এক্সসেপশনের কোড এক্সিকিউট হবে।
catch (OleDbException Ex)
{
     MessageBox.Show(Ex.Message);
}

এরপর মাস্কড টেক্সটবক্সে যে পাসওয়ার্ড দিয়েছি সেটার সাথে pass ভ্যারিয়েবলের ভ্যালুটা মিল আছে কিনা দেখবে। যদি মিল পায় তাহলে পরবর্তী কাজগুলো করবে (আমাদের প্রজেক্টের উপর নির্ভর করে) আর যদি না মিলে তাহলে একটা ম্যাসেজের মাধ্যমে সেটা জানিয়ে দিবে।
MessageBox.Show("User Name or Password Error!!");
আশাকরি আপনার আজকের পোষ্টা বুঝতে পেরেছেন এবং সে সাথে নিজের মত করে লগইন ফর্ম তৈরি করতে পারবেন।

No comments

Powered by Blogger.