سلام گلای توو خونه D: برنامه نویس های نمونه، قول بدین حرفای ویروس یادتون بمونه D: خب مرسی D: سریع و فلفور بریم سر ادامه پروژمون که دیگه دیره... ;) همان طور که مستحضرید پروژه ما راجب دفترچه تلفن بود که دیتابیس و دیزاین میزاین و فرم ها و کلاس هارو درست کردیم، فقط باید بریم سر کدنویسی...
اول کتابخونه زیر رو ادد کنین. هم توو کلاس جدیدمون هم توو فرم ها:
using System.Data.OleDb;
کد زیر روو توو کلاس جدیدمون ادد کنین برای اتصال به دیتابیسه:
public OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; data source=|DataDirectory|\vdata.mdb ;");
public OleDbCommand com = new OleDbCommand();
متد های زیر هم پیغامه که بهتره توو کلاس ادد کنین و هرجا لازم داشتین اونو فراخوانی کنین:
public void msgerr()
{
MessageBox.Show("بانک اطلاعاتی یافت نشد که :|","خطا",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
public void msgok()
{
MessageBox.Show("عملیات با موفقیت انجام شد", "موفق", MessageBoxButtons.OK, MessageBoxIcon.Information);
}public void nameer()
{
MessageBox.Show("این نام قبلا ثبت شده بود که :|", ":| عی بابا ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}public void empty()
{
MessageBox.Show("یارو اسم هم نداره ینی :|", ":| عی بابا ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
خب کارمون با کلاس تمومه. بریم روو فرم مِین. (اشتباهی نرین روو مین منفجر بشین O_o)
اول متغیر و کد اتصال به کلاس و فرم ۲ رو اون بالا به صورت گلوبال بنویسین:
Class1 cd = new Class1();
Form2 f2 = new Form2();
public int v;
خب حالا متد زیر رو بعد از کدای بالا بنویسین:
public void nn()
{
try
{
OleDbDataAdapter da = new OleDbDataAdapter("select * from table1", cd.con);
DataSet ds = new DataSet();
da.Fill(ds, "tblTel");
dataGridView1.DataSource = ds.Tables["table1"].DefaultView;
cd.con.Close();
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].HeaderText = "نام";
dataGridView1.Columns[1].Width = 70;
dataGridView1.Columns[2].HeaderText = "نام خانوادگی";
dataGridView1.Columns[2].Width = 120;
dataGridView1.Columns[3].Visible = false;
}
catch
{
this.Close();
cd.msgerr();
}
}
خب ما با متد بالا از طریق کلاس جدیدمون با دیتابیس ارتباط گرفتیم و دستور نمایش اطلاعات دیتابیس رو توو فرم دادیم. درواقع با متد بالا، دیتاگرید ویومون از دیتابیس اکسسی که کنار پروژه مونه تغذیه میشه. و همچنین عنوان نمایشی و سایز بعضی ستون های دیتاگرید ویو رو تعیین کردیم.
حالا این متد رو توو رویداد فرم لود فرممون فراخوانی میکنیم تا هروقت فرم بالا اومد اطلاعات دیتابیس توو دیتاگرید ویو به نمایش دربیاد. برای فراخوانی هم که کاری نداره فقط اسم متد رو همراه با پرانتز و یه سمی کالن; قرار بدین :) از چغندر و لبو و شلغم کمترین اگه نتونین :/ D:
خب حالا واسه اینکه تغییراتی که توو دیتابیس ایجاد میکنیم توو دیتاگرید ویو رفریش شه، باید اول برید توو Event فرم مین و در رویداد Form_Active کد زیر رو بنویسین تا متد dg دوباره فراخوانی شه:
dg();
* توجه: این کد رو توو رویداد فرم لود (فرم مین) هم بنویسین تا وقتی فرم بالا اومد دیتاگرید ویو هم از دیتابیس تغذیه شه.
حالا بریم کد زیر رو برای رویداد باتن۱ ( ثبت، ذخیره ) مینویسیم:
f2.edi=0;
f2.ShowDialog();
توجه کنین که توو کد بالا دستور دادیم تا متغیر edi که در فرم۲ قرار داره مقدارش برابر با صفر بشه که توو فرم۲ براتون توضیح میدم چی به چیه
حالا بریم روو دکمه ویرایش و نمایش. اول متد زیر رو بعد از متد nn ادد کنین:
public void editshow()
{
try
{
f2.v = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString()); f2.textBox1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); f2.textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); f2.textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString(); f2.textBox4.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString(); f2.ShowDialog(); }
Catch {cd.con.Close()};}
خب ما با استفاده از متد بالا مقدار تکست باکس های فرم 2 رو برابر با مقدار ردیفی که از لیست دیتاگرید ویو انتخاب کردیم قرار دادیم تا بتونیم با زدن دکمه ویرایش یا نمایش این مشخصات رو توو فرم 2 ببینیم یا تغییرشون بدیم.
کد پایین رو هم برای رویداد باتن2 (نمایش) هم برای رویداد باتن3 (ویرایش) مینویسم:
editshow();
خب با کد بالا ما متد editshow رو فراخوانی میکنیم که بالا راجبش توضیح دادم.
کد پایین هم برای حذف کردن یک ردیف از لیسته که باید توو رویداد باتن4 (حذف) قرار بدین تا باهاش بشه مخاطب مورد نظر رو حذف کرد:
try
{
v = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
cd.com.Connection = cd.con;
if (MessageBox.Show(" مطمئنی میخوای " + dataGridView1.CurrentRow.Cells[1].Value.ToString() + ""
+ "\r\n\r\n"
+ " رو از لیست مخاطبین حذف کنی؟ ", " !توجه ", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
cd.com.CommandText = "delete from table1 where id=" + v + "";
cd.con.Open();
cd.com.ExecuteNonQuery();
cd.con.Close();
MessageBox.Show(" :D مخاطب مورد نظر با موفقیت از لیست مخاطبین پاکیده شد ", " (: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
dg();
}
else
{
}
}
catch { cd.con.Close(); }
try
{
if (dataGridView1.CurrentRow.Cells[0].Value.ToString() != "")
{
}
}
catch
{
cd.con.Close();
string up = "UPDATE reg SET ID='0'";
OleDbCommand comup = new OleDbCommand(up, cd.con);
cd.con.Open();
comup.ExecuteNonQuery();
cd.con.Close();
}
خب حالا اگه روو یه ردیف از دیتابیس کلیک کنین و دکمه حذف رو بزنین، میبینید اون ردیف ینی اون مخاطب از دیتابیسمون حذف میشه و توو ساختار try بعدیش دستور دادم اگه هیچ مخاطبی توو دیتابیس نبود، مقدار آیدی ها رو برابر با 0 قرار بده که این عشقیه فقط جهت مرتب و تمیز تر شدنه، شما میتونین قرار ندین :(
خب خب خب کار ما با فرم مین تموم شد :) حالا باید بریم توو فرم 2 که خیلی طولانی میشه واس همین کدای فرم 2 رو توو پست بعدی ینی قسمت سوم همین مجموعه براتون توضیح میدم :)
من برم به کار و بارم برسم. روو اینا کار کنین و حسابی حرفه ای شین تا بیام براتون قسمت سوم رو بزارم
ببینم چقد طرفدار داره، اگه طرفدار زیاد داشت قسمت سوم رو میزارم D: خدافس همگی :)
ایران هم که مثل همیشه پرچمش بالاست
پرچم اتکر و سی شارپ هم که مثل همیشه بالاست (;