سلام.
عیدتون مبارک.
به درخواست یکی از دوستان این متن رو نوشتم. اما چون سوال خوبی بود به عنوان پست در این forum گذاشتمش.
فکر میکنم همگی درباره database ها و اهمیتشون آگاهی داشته باشن. نکته ای که در رابطه با database
همیشه وجود داره و مطرح میشه ارتباط یک DB با یک interface هست. نحوه اتصال به DB و خوندن اطلاعات از
اون. این ارتباط با وجود چهارچوب .Net بسار راحت شده و برخلاف MFC وADO ActiveX
به سرعت میشه با یه DB در ارتباط بود.
در مورد ADO.Net مقاله ها و کتاب های فوق العاده خوبی وجود داره که اهمیت ADO و اینکه از چه بخش هایی
تشکیل شده رو نشون میده. این مقاله یک روش سریع برای ارتباط با یک DB در Access رو نشون میشه.
کلاس های مورد استفاده OleDbConnection و OleDbCommand و OleDbDataReader هستند.
همین طور که از اسم این سه کلاس مشخص هست از اولی برای ارتباط از دومی برای دستورات و از سومی
برای خوندن اطلاعات استفاده میشه. هرکدوم از این کلاس ها شامل متودها و خصوصیات مختلفی هست که
برای یک ارتباط استفاده میشه. برای درک بهتر از کار هرکدوم از کلاس ها بهتره در مورد ADO.Net مطالعه بشه.
(کلاس ها در ADO.Net به دو بخش کلی تقسیم میشن DataProvide و DataSet که در مورد هر کدوم مطالب
زیادی وجود داره که از این مقاله خارج هست.)
توضیحاتی که داده میشه بسیار کوتاه و مختصر هست :
اولین کاری باید انجام بدیم این هست که با DB مورد نظر ارتباط بر قرار کنیم. باید بدونیم که مثلاDB در کجا قرار
داره و یا از چه Provider ی استفاده میشه. برای این کار از کلاس OleDbConnection استفاده میکنیم.
با استفاده از OleDbCommand از دستورات مورد نظرمون در SQL استفاده میکنیم و بعدش با استفاده از
OleDbDataReader میتونیم اطلاعات مورد نظر رو بخونیم.
کد زیر این کار رو نجام میده :
کد:
private string strConnection;
private void ShowDB_Click(object sender, EventArgs e)
{
OleDbConnection cnSimple = null;
OleDbDataReader drSimple = null;
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source = C:\\Test.mdb";
try
{
cnSimple = new OleDbConnection(strConnection);
cnSimple.Open();
OleDbCommand cmdSimple = cnSimple.CreateCommand();
cmdSimple.CommandText = "SELECT * FROM myUser";
drSimple = cmdSimple.ExecuteReader();
string Name;
while (drSimple.Read())
{
Name = (string)drSimple.GetValue(0);
lcListBox.Items.Add(Name);
}
drSimple.Close();
cnSimple.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
میبینید که به سرعت میتونیم کدی برای ارتباط با DB بنویسیم. ممکنه بخوایم با خوندن اطلاعات از DB اون رو در
یک file ذخیره کنیم. در این صورت هم کافیه از کلاس File و StreamWriter استفاده کنیم.
که برنامه به این شکل در میاد :
کد:
private string strConnection;
private void ShowDB_Click(object sender, EventArgs e)
{
OleDbConnection cnSimple = null;
OleDbDataReader drSimple = null;
StreamWriter strWrite = null;
string strPath = "C:\\Out.txt";
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source = C:\\Test.mdb";
try
{
strWrite = File.CreateText(strPath);
cnSimple = new OleDbConnection(strConnection);
cnSimple.Open();
OleDbCommand cmdSimple = cnSimple.CreateCommand();
cmdSimple.CommandText = "SELECT * FROM myUser";
drSimple = cmdSimple.ExecuteReader();
string Name;
while (drSimple.Read())
{
Name = (string)drSimple.GetValue(0);
lcListBox.Items.Add(Name);
strWrite.WriteLine(Name);
}
drSimple.Close();
cnSimple.Close();
strWrite.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
اساس ارتباط همیشه به این شکل هست. البته این مثال خیلی خیلی ساده بود. اما برای شروع خیلی خیلی
مفید هست و میشه گفت یه مقدمه ی ساده برای شروع کار با ADO.Net .
فکر میکنم کد واضح باشه. ولی هرجا نیاز به توضیح داشت اطلاع بدید تا در موردش با هم صحبت کنیم.