تو پست های قبلی یاد گرفتیم
بانک اطلاعاتی درست کنیم
پروژه سی شارپ رو آغاز کنیم و بانک رو بهش اضافه کنیم
در این پست میریم سراغ کد نویسی
ابتدا بهتره یه نکته کوچولو گوشه ذهنتون بزارم برای آینده
من بیشتر وقتی برنامه های دیتادار طراحی میکنم کدها رو تو یه صفحه دیگه مینویسم
بعد تو هر صفحه ای که لازمم شد اول صفحه ی کدهارو فراخوانی میکنم و به کمک اون ، کلاس مورد نظرم رو فراخوانی میکنم
این باعث میشه هم سرعت کار بره بالا هم اشتباه کمتری داشته باشیم
هم اینکه .... ولش کن .... کلا اونطوری بهتره
ولی اینجا چون برنامه خیلی کوچولو هسسش (همش یک فورمه)
کدها رو همینجا مینویسم و دیگه اصل اشتراک گذاری و فراخوانی رو زیر پام له میکنم :|
حالا بریم سر اصل مطلب:
کلا وقتی میگیم برنامه دیتا داره
اولین فکری که باید سرمون بیاد اتصال (باکلاسا میگن کانکت شدن) به بانک اطلاعاتی باید باشه
برای اینکار ابتدا باید کتابخونه اش رو به برنامه معرفی کنیم
دوبار روی صفحه فورم کلیک کنید تا برین قسمت کدها
اون بالا قسمت Using ها کد زیر رو باید به برنامه اضافه کنیم تا نوع دیتا رو بهش معرفی کرده باشیم
using System.Data.OleDb;
چون من در این پست از بانک اکسس استفاده کردم
(برای ساده تر بودن آموزش)
پس باید دیتا مون رو OleDb معرفی کنیم
البته در بیشتر موارد Sql خواهد بود
کدهارو فعلا زیاد موشکافی نمیکنم (زیاد توضیح نمیدم) ولی اگه علاقه داشتین سوال کنین موی رگاشو هم میشکافم براتون
حالا برای نوشتن کد اتصال یا همون کانکت بعد از تکه کد زیر
public partial class Form1 : Form
{
کدهای زیر رو اضافه میکنم
public OleDbConnection con = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=Virus32.mdb ;");
public OleDbCommand com = new OleDbCommand();
که در کل به شکل زیر باید بشه
خوب کد اتصال رو نوشتیم حالا مرحله به مرحله کارهایی که باید انجام بدیم رو تکمیل میکنیم
این باید همیشه یادمون باشه که برای برنامه هایی مثل این
که به کمکش قراره اطلاعاتی رو توی بانکی ثبت کنیم
باید برای هر ثبت (رکورد) باید یک آی دی داشته باشیم
چون ما بعدا به کمک این آی دی ها میتونیم ثبت شده هامون رو ویرایش و حذف کنیم
خوب پس اولین کاری که باید انجام بدیم نوشتن یه کد برای تعیین آی دی هستش
آی دی ها هرگز نباید تکراری باشن
چون اگه تکراری باشه موقع حذف کردن تمام ثبت هایی که آی دی مشابه دارن حذف خواهند شد
کدهای زیادی برای ایجاد آی دی وجود داره
هرکس به سلیقه ی خودش یه کدی مینویسه
اگه از این کد راضی نبودین کدهای زیادی هست که میتونم باهاتون در میون بزارم
در کل برای نوشتنش بهتره کدهارو تو یه کلاس قرار بدیم
پس قبلش این کلاس رو میسازیم
من در اینجا اسم این کلاس رو idset تعیین کردم
به شکل زیر :
private void idset()
{
}
میبینید که کلاسمو به شکل خصوصی یا private درست کردم
میتونیم عمومی یا Public هم درست کنیم
ولی من به شخصه هنگام برنامه نویسی زیاد با عمومی کردن کدهام رابطه خوبی ندارم :)
کلا همه کارا و کدهایی که مینویسم 50 درصد سلیقه ای هسسش
حالا کدهای آی دی ساز رو بین {} ها مینویسم
try
{
double a;
a = double.Parse(dataGridView1.RowCount.ToString());
textBox4.Text = a.ToString();
if (textBox4.Text != "" && textBox4.Text != "0")
{
virus:
OleDbConnection con = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=Virus32.mdb ;");
con.Open();
OleDbCommand com1 = new OleDbCommand("select * from test where id=@c ", con);
com1.Parameters.Clear();
com1.Parameters.AddWithValue("@c", Convert.ToInt32(textBox4.Text));
OleDbDataReader r = com1.ExecuteReader();
if (r.Read() == true)
{
a = a + 1;
textBox4.Text = a.ToString();
goto virus;
}
else
{
textBox4.Text = a.ToString();
}
r.Close();
con.Close();
}
else
{
textBox4.Text = "1";
}
}
catch
{
MessageBox.Show("آی دی تعیین نشد");
}
در کل به شکل زیر درمیاد :)
توضیح کد :
اینجا ابتدا تعداد رکوردها یا ثبت شده هارو میگیریم
خوب مسلما تعداد یک عدد هسسش
این عدد اگه صفر یا خالی نبود
تو بانک قسمت آی دی رو تست میکنیم اگه اون عدد تو قسمت آی دی قبلا ثبت شده بود یکی بهش اضافه میکنیم و دوباره برمیگردیم به قسمت تست آی دی که تو بانک وجود داره یا نه
این چرخه ادامه پیدا میکنه تا وقتی که اون شماره یا آی دی توی بانک وجود نداشته باشه که در این صورت اون عدد رو به عنوان آی دی انتخاب مکینیم
اگه هیچ رکورد یا ثبتی وجود نداشته باشه
آی دی رو یک انتخاب میکنیم
حالا برمیگردیم به فورم (قسمت طراحی) روی فورم دوبار کلیک کنید تا به قسمت فورم لود بریم
اونجا این مجموعه رو فراخوانی میکنیم تا هنگام اجرای برنامه سریع آی دی در نظر گرفته بشه
به شکل زیر دقت کنید!!!
یه تست بگیریم ببینیم کار میکنه یا نه
تو هر قدم بهتره یه تست بگیریم
چون هیچ ثبتی نداشتیم سیستم آی دی رو یک درنظر میگیره
این پست رو اینجا به آخر میرسونم
قسمت های بعدی هم بمونه برای پست های بعدی
انگار برنامه نویسی هنوزم زیاد ترفدار نداره ;)
ایرانی همیشه سرافراز