কনসোল টেবিল


আসসালামু আলাইকুম। সবাইকে ঈদুল আজহার শুভেচ্ছা, ঈদ মুবারাক। আজকে আমরা একটি চমৎকার বিষয় নিয়ে আলোচনা করবো। আমরা যখন ভার্সিটিতে রিলেশনাল ডাটাবেজ শিখি, তখন আমাদের ভার্সিটি থেকে একটা প্রোজেক্ট করতে দেয়া হয় যেখানে এমন একটা এপ্লিকেশন বানাতে বলা হয় যেটা ডাটাবেজের সাথে কানেক্ট থাকবে এবং এটা দিয়ে Create, Read, Update, Delete এই ৪ টা অপারেশন করা যাবে।

Create : এর মানে হলো ইউজার ইনপুট থেকে ডাটা নিয়ে সেটা ডাটাবেজে সেভ করে রাখতে পারতে হবে।
Read : এর মানে হলো বর্তমানে যে টেবিল গুলো রয়েছে ডাটাবেজে সেগুলোকে টেবিল আকারে একসাথে ভিউ করাতে হবে।
Update : এর মানে হলো ডাটাবেজের যেকোনো টেবিলের ডাটা পরিবর্তনের ব্যাবস্থা থাকতে হবে।
Delete : এর মানে হলো ডাটাবেজের যেকোনো টেবিলের ডাটা মুছে ফেলার ক্ষমতা থাকতে হবে।

এখন অনেকেই এই ধরনের প্রোজেক্ট করার সময় গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) ব্যাবহার করে এবং Read অপারেশন টা করে থাকে। আজকে আমি দেখাবো কিভাবে কোনো GUI ছাড়াই এই কাজটা শুধু কনসোল দিয়েই করে ফেলা সম্ভব। চলুন তাহলে শুরু করা যাক।


১) প্রথমে ভিজ্যুয়াল স্টুডিও ওপেন করে একটা নতুন (.NET Core) Console App প্রোজেক্ট সিলেক্ট করুন।

২) এরপরে এই প্রোজেক্টের একটি নাম দিন। আমি নাম দিয়েছি "Demo Project", আপনি আপনার পছন্দ মত একটা নাম দিয়ে দিন।

৩) এখন আপনি Create বাটনে ক্লিক করুন। এরকম একটা উইন্ডো আপনার সামনে ওপেন হবে।

এখন আপনাকে একটা কাজ করতে হবে, এই প্রোজেক্টে একটা প্যাকেজ ইন্সটল করতে হবে। প্যাকেজটার নাম "ConsoleTables" এবং এটি আপনি NuGet প্যাকেজ ম্যানেজারে পাবেন। আমি এটার লিংক দিয়ে দিয়েছি এবং কিভাবে এটাকে আপনি আপনার প্রোজেক্টে ইন্সটল করবেন সেটিও দেখিয়ে দিয়েছি। প্রথমে আপনি এই লিংকে ক্লিক করুন।

৪) এরপরে এই লেখাটা কপি করুন।
 Install-Package ConsoleTables -Version 2.4.2  

৫) এরপরে Tools > NuGet Package Manager > Package Manager Console অপশনে ক্লিক করুন।

৬) এরপরে কমান্ডটি Paste করুন এবং Enter প্রেস করুন।

এখন আপনার কাজ শেষ, প্যাকেজটি আপনার প্রোজেক্টে সফলভাবে ইন্সটল হয়েছে। আপনি এখন এটা ব্যাবহার করতে পারেন। চলুন এবারে আমরা কিছু কোড লিখে এটা রান করি, দেখি যে এর আউটপুট কিরকম আসে। আপনি নিচের কোড কপি করুন এবং আপনার মেশিনে রান করুন।

প্রথমে Person নামের নতুন একটা ক্লাস তৈরি করুন এবং এখানে ৩ টা প্রোপার্টি থাকবে যথাক্রমে id, name, address. এখানে একটা কন্সট্রাক্টর থাকবে যেটা প্যারামিটার হিসেবে id, name, address এই ৩ টা ভ্যালু নেবে।

using System;  
using System.Collections.Generic;  
using System.Text;  

namespace DemoProject  
{  
    public class Person  
    {  
        public string id { get; set; }  
        public string name { get; set; }  
        public string address { get; set; }  
        
        public Person(string id, string name, string address)  
        {  
            this.id = id;  
            this.name = name;  
            this.address = address;  
        }  
    }  
}  

এরপরে মেইন ফাংশনে এই কোডগুলো লিখুন
using System;
using ConsoleTables;
using System.Collections.Generic;

namespace DemoProject
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();

            people.Add(new Person("1", "Raihan", "Barisal"));
            people.Add(new Person("2", "Asif", "Barisal"));
            people.Add(new Person("3", "Maruf", "Barisal"));
            people.Add(new Person("4", "Zihad", "Barisal"));
            people.Add(new Person("5", "Kanak", "Chandpur"));
            people.Add(new Person("6", "Khalid", "Rangpur"));
            people.Add(new Person("7", "Adit", "Jessore"));
            people.Add(new Person("8", "Sakib", "Jessore"));

            ConsoleTable table = new ConsoleTable("ID", "Name", "Address");

            foreach (var item in people)
            {
                table.AddRow(item.id, item.name, item.address);
            }

            table.Write();
        }
    }
}

এরপরে এটি রান করলে এরকম আউটপুট আসবে

আপনি যদি Program ক্লাস টা দেখেন তাহলে দেখবেন আমি using ConsoleTable নামে একটা প্যাকেজ ব্যাবহার করেছি। এটার জন্য একটা অবজেক্ট বানিয়েছি যেটার নাম table এবং এটি প্যারামিটার হিসেবে নেয় কলামের নাম। আমার এই টেবিলে মোট ৩ টা কলাম আছে যথাক্রমে ID, Name এবং Address. এরপরে লুপের মাধ্যমে table অবজেক্টের প্রত্যেক টা রো তে ভ্যালু অ্যাড করেছি। সবশেষে table.Write() দিয়ে টেবিল টা বানিয়ে ফেলেছি।

এখন আপনি চাইলে ডাটাবেজের প্রত্যেক টা টেবিলের জন্য আলাদা আলাদা ক্লাস লিখে কনসোলেই টেবিলের সব ডাটা ভিউ করাতে পারেন। আর ডাটাবেজ থেকে টেবিলের সব ডাটা আনার জন্য প্রত্যেকবার আপনাকে নতুন করে লিস্টে ডাটা অ্যাড করতে হবে না। আপনি ADO.NET অথবা Entity Framework Core জানলে একটা মেথড দিয়েই খুব সহজে টেবিলের সব ডাটা লিস্টে অ্যাড করতে পারবেন। সেটা নিয়ে পরে কোনো পোস্টে লিখবো ইনশাআল্লাহ। 

এতক্ষনে নিশ্চই বুঝে গেছেন কিভাবে এই প্যাকেজ টা কাজ করে। এখন আপনি আপনার প্রোজেক্টে এটা ব্যাবহার করতে পারেন। এই লেখেটা পড়ার জন্য আপনাকে ধন্যবাদ। সবাইকে ঈদের শুভেচ্ছা রইলো।

Comments

Popular posts from this blog

ডিজাইন প্যাটার্ন

উইন্ডোজ ১০ এ ভার্চুয়াল বক্স এবং ডুয়াল বুট ছাড়াই লিনাক্স ইন্সটল (০২)

উইন্ডোজ ১০ এ ভার্চুয়াল বক্স এবং ডুয়াল বুট ছাড়াই লিনাক্স ইন্সটল (০১)

উইন্ডোজ ১০ এ ভার্চুয়াল বক্স এবং ডুয়াল বুট ছাড়াই লিনাক্স ইন্সটল (০৩) শেষ পর্ব

হ্যালো ওয়ার্ল্ড ! (আসকি আর্ট)