C# And Microsoft Access Database সি শার্প এবং মাইক্রোসফট অ্যাকসেস ডাটাবেইজ
সি শার্প এবং মাইক্রোসফট অ্যাকসেস ডাটাবেইজ
সি শার্প টিউটোরিয়াল সিরিজের এই পোষ্টে আমরা শিখব সি শার্প প্রজেক্টে কিভাবে মাইক্রোসফট অ্যাকসেস ডাটাবেইজ ব্যবহার করা হয়। অ্যাকসেস ডাটাবেইজ ব্যবহার করার জন্য আমরা .NET Framework এর বিল্ড ইন লাইব্রেরী System.Data এবং OleDb ডাটা কানেক্টর ব্যবহার করব। লাইব্রেরীটা ব্যবহার করার জন্য আমাদের সোর্স কোডে নিচের কোডটা লিখতে হবেঃ
using System.Data.OleDb;
প্রোগ্রামিং ল্যাঙ্গুয়েজের সাথে ডাটাবেইজ ব্যবহার করার জন্য ডাটা কানেক্টর ব্যবহার করতে হয়, সি শার্পে অ্যাকসেস ডাটাবেইজ ব্যবহার করার জন্য আমাদেরকে OleDb ডাটা কানেক্টর ব্যবহার করতে হবে। ডাটা কানেক্টর ব্যবহার করার সুবিধা হল এগুলোতে প্রোগ্রামিং ল্যাঙ্গুয়েজের সাথে একটা ডাটাবেইজ ব্যবহার করার জন্য যা যা লাগে (যেমন – ক্লাস, ফাংশন, …) ডিফাইন করা থাকে।
একটা ডাটাবেইজের সাধারন অপারেশন (যেমন – ইনসার্ট, ডিলিট, সিলেক্ট, …) এর জন্য যেসব ক্লাস, এবং তাদের ইন্সট্যান্স সব সময় ব্যবহার করতে হয় সেগুলো হলঃ
OleDbConnection: ডাটাবেইজের অপারেশনগুলো ব্যবহার করার জন্য আমাদেরকে অবশ্যই ডাটাবেইজের কানেকশন খোলা এবং বন্ধ করতে হবে। এসব কাজের জন্য OleDbConnection ক্লাসের ইন্সট্যান্স ব্যবহার করতে হবে। OleDbConnection ক্লাসের ইন্সট্যান্স ডিক্লায়ার করার সময় আমাদের একটা প্যারামিটার ডিক্লায়ার করতে হবে। এই প্যারামিটারে মূলত ডাটাবেইজের প্রোভাইডার (অ্যাকসেস ডাটাবেইজ হলে), ডাটাবেইজের পাথ/ডিরেক্টরী, ডাটাবেইজের ব্যবহারকারীর নাম, পাসওয়ার্ড ইত্যাদি তথ্য দেওয়া থাকে।
আমরা চাইলে OleDbConnection এর ইন্সট্যান্স দুইভাবে ডিক্লায়ার করতে পারিঃ
একটা ডাটাবেইজের সাধারন অপারেশন (যেমন – ইনসার্ট, ডিলিট, সিলেক্ট, …) এর জন্য যেসব ক্লাস, এবং তাদের ইন্সট্যান্স সব সময় ব্যবহার করতে হয় সেগুলো হলঃ
OleDbConnection: ডাটাবেইজের অপারেশনগুলো ব্যবহার করার জন্য আমাদেরকে অবশ্যই ডাটাবেইজের কানেকশন খোলা এবং বন্ধ করতে হবে। এসব কাজের জন্য OleDbConnection ক্লাসের ইন্সট্যান্স ব্যবহার করতে হবে। OleDbConnection ক্লাসের ইন্সট্যান্স ডিক্লায়ার করার সময় আমাদের একটা প্যারামিটার ডিক্লায়ার করতে হবে। এই প্যারামিটারে মূলত ডাটাবেইজের প্রোভাইডার (অ্যাকসেস ডাটাবেইজ হলে), ডাটাবেইজের পাথ/ডিরেক্টরী, ডাটাবেইজের ব্যবহারকারীর নাম, পাসওয়ার্ড ইত্যাদি তথ্য দেওয়া থাকে।
আমরা চাইলে OleDbConnection এর ইন্সট্যান্স দুইভাবে ডিক্লায়ার করতে পারিঃ
OleDbConnection myCon = new OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;Data Source=sysDB.accdb;");
string strConn = " Provider=Microsoft.ACE.OleDb.12.0;Data Source=sysDB.accdb;"; OleDbConnection myCon = new OleDbConnection(strConn);
আপনি উপরের যেকোন একটা পদ্ধতি ব্যবহার করতে পারেন।
OleDbDataAdapter: ডাটাবেইজের সাধারন অপারেশন (ইনসার্ট, ডিলিট, …) করার জন্য আমাদেরকে OleDbDataAdapter এর একটা ইন্সট্যান্স ডিক্লায়ার করতে হবে। ইন্সট্যান্স ডিক্লায়ার করার সিনট্যাক্স হলঃ
OleDbDataAdapter: ডাটাবেইজের সাধারন অপারেশন (ইনসার্ট, ডিলিট, …) করার জন্য আমাদেরকে OleDbDataAdapter এর একটা ইন্সট্যান্স ডিক্লায়ার করতে হবে। ইন্সট্যান্স ডিক্লায়ার করার সিনট্যাক্স হলঃ
OleDbDataAdapter myAdapter = new OleDbDataAdapter();
এই ইন্সট্যান্স দিয়ে আমরা পরবর্তীতে দুইটা কমান্ড লিখব। যার মধ্যে ১ম কমান্ডে আমাদেরকে কি রকম অপারেশন করতে চাই তা ডিক্লায়ার করতে হবে। যেমন
ডাটাবেইজের প্রাইমারী ৪টা অপারেশনের জন্য ১ম কমান্ডটা ডিক্লায়ার করার সিনট্যাক্সঃ
myAdapter.InsertCommand = new OleDbCommand(string query, OleDbConnection myConn); //For insert operation myAdapter.DeleteCommand = new OleDbCommand(string query, OleDbConnection myConn); //For delete operation myAdapter.SelectCommand = new OleDbCommand(string query, OleDbConnection myConn); //For select operation myAdapter.UpdateCommand = new OleDbCommand(string query, OleDbConnection myConn); // //For update operation
উপরের সিনট্যাক্স থেকে আমরা দেখতেই পারছি যে ১ম কমান্ডটা লিখার সময় আমাদেরকে দুইটা প্যারামিটার ডিক্লায়ার করতে হচ্ছে। যার মধ্যে ১ম প্যারামিটারে আমাদেরকে ডাটাবেইজের কুয়েরীটা লিখতে হবে, এবং ২য় প্যারামিটারে আমরা শুরুতে OleDbConnection এর যে ইন্সট্যান্সটা ডিক্লায়ার করেছি শুধুমাত্র ঐই ইন্সট্যান্সের নামটা লিখতে হবে।
ডাটাবেইজের অপারেশনটা এক্সসেপশন হ্যান্ডলিং (Exception Handling) এর মাধ্যমে করা ভাল, এতে করে আমাদের ডাটাবেইজের কানেকশন থেকে শুরু করে ডাটাবেইজের সাথে যেকোন রকম সমস্যা থাকলে তা ম্যাসেজ হিসাবে দেখাতে পারব।
Exception Handling এর try ব্লকে আমরা OleDbConnection এর ডিক্লাযার করা ইন্সট্যান্স দিয়ে Open() ফাংশনটা কল দিব, এরপর OleDbDataAdapter এর ২য় কমান্ড, যেটা দিয়ে ডাটাবেইজের অপারেশনের সম্পূর্ণ কাজ হবে সেটা লিখব। ইনসার্ট, ডিলিট, এবং আপডেট অপারেশনের জন্য ২য় কমান্ডটা একইঃ
myAdapter.DeleteCommand.ExecuteNonQuery();
শুধুমাত্র সিলেক্ট কমান্ডেরটা একটু ভিন্ন।
সবশেষে আমরা OleDbConnection এর ডিক্লাযার করা ইন্সট্যান্স দিয়ে Close() ফাংশনটা কল দিব।
Exception Handling এর catch ব্লকে আমরা যেকোন ম্যাসেজ ব্যবহার করতে পারি, যেটা দিয়ে ডাটাবেইজের সাথে সম্পর্কিত কোন সমস্যা থাকলে আমরা জানতে পারব।
এবার আমরা উপরের ছোট ছোট কোডগুলোর উপর ভিত্তি করে ডিলিট অপারেশনের জন্য একটা সম্পূর্ণ কোড লিখব।
সবশেষে আমরা OleDbConnection এর ডিক্লাযার করা ইন্সট্যান্স দিয়ে Close() ফাংশনটা কল দিব।
Exception Handling এর catch ব্লকে আমরা যেকোন ম্যাসেজ ব্যবহার করতে পারি, যেটা দিয়ে ডাটাবেইজের সাথে সম্পর্কিত কোন সমস্যা থাকলে আমরা জানতে পারব।
এবার আমরা উপরের ছোট ছোট কোডগুলোর উপর ভিত্তি করে ডিলিট অপারেশনের জন্য একটা সম্পূর্ণ কোড লিখব।
using System; using System.Windows.Forms; using System.Data.OleDb; namespace WindowsApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } private void button_Click(object sender, EventArgs e) { string strConn = " Provider=Microsoft.ACE.OleDb.12.0;Data Source=”database path/directory”; Used ID=Here type user id;Password= Here type password"; OleDbConnection myCon = new OleDbConnection(strConn); OleDbDataAdapter myAdapter = new OleDbDataAdapter(); string Qry = "delete * from <table-name>"; myAdapter.DeleteCommand = new OleDbCommand(Qry, myCon); try { myCon.Open(); myAdapter.DeleteCommand.ExecuteNonQuery(); MessageBox.Show(“Delete!!”); myCon.Close(); } catch (OleDbException ex) { MessageBox.Show(ex.Message); } } }
আশাকরি আপনারা সি শার্প প্রজেক্টে মাইক্রোসফট অ্যাকসেস ডাটাবেইজ ব্যবহার করার এই পদ্ধতি বুঝতে পেরেছেন।
No comments