آموزش کار با دیتا تیبل dataTable و dataGridView دیتا گرید در c# سی شارپ
برای کار با دیتا تیبل و دیتا گرید ( اضافه کردن حذف و ویرایش و جستجو ) در سی شارپ c# یک پروژه جدید اضافه میکنیم و ابزارهای موجود در فرم بالا را اضافه میکنیم.
اکنون یک دیتا تیبل و یک دیتا ست برای فرم بصورت سراسری تعریف میکنیم:
DataTable dt = new DataTable();
DataSet ds = new DataSet();
سپس در رویداد لود فرم مقدار دهی به DataTable و DataSet را انجام داده و آنرا به DataGridView در c# متصل میکنیم:
private void Form1_Load(object sender, EventArgs e)
{
dt.Columns.Add("Code");
dt.Columns.Add("Name");
dt.Columns.Add("Family");
dt.Columns.Add("Phone");
dt.Rows.Add();
dt.Rows[dt.Rows.Count - 1]["Code"] = "01";
dt.Rows[dt.Rows.Count - 1]["Name"] = "ali";
dt.Rows[dt.Rows.Count - 1]["Family"] = "Habibi";
dt.Rows[dt.Rows.Count - 1]["Phone"] = "09375816384";
dt.Rows.Add("02", "Saeed", "Reazii", "01823937018");
dataGridView1.DataSource = dt;
ds.Tables.Add(dt);
}
اکنون برای اضافه کردن اطلاعات جدید به دیتا تیبل و دیتا گرید ویوو یک فرم جدید بنام Form2 به پروژه اضافه مکنیم.
اطلاعات زیر را باید از فرم زیر برای کار با Datatable و DataGridView در سی شارپ به فرم اول میفرستیم:
در رویداد کلیک جدید فرم اول برای اضافه کردن اطلاعات کد زیر را مینویسیم:
private void btnNew_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
if (frm.ShowDialog() == DialogResult.OK)
{
dt.Rows.Add(frm.txtCode.Text, frm.txtName.Text, frm.txtFamily.Text, frm.txtPhone.Text);
}
}
در این قسمت یک فرم 2 را بصورت فرزند باز کرده و چنانچه کلید ok در آنجا زده شود اطلاعات به دیتاتیبل در فرم اول اضافه میگردد و چون datatable به datagridview متصل است داده های جدید نمایش داده میشوند.
برای ویرایش اطلاعاتی که کاربر از سطر دیتا گرید انتخاب کرده است بشکل زیر کدها را در کلید ویرایش فرم اول قرار میدهیم:
private void btnEdit_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count == 0)
{
MessageBox.Show("موردي براي ويرايش وجود ندارد", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
return ;
}
Form2 frm = new Form2 ();
frm.txtCode.Text=dataGridView1["Code",dataGridView1.CurrentRow.Index ].Value.ToString();
frm.txtName.Text=dataGridView1["Name",dataGridView1.CurrentRow.Index ].Value.ToString();
frm.txtFamily.Text=dataGridView1["Family",dataGridView1.CurrentRow.Index ].Value.ToString();
frm.txtPhone.Text=dataGridView1["Phone",dataGridView1.CurrentRow.Index ].Value.ToString();
if (frm.ShowDialog() == DialogResult.OK)
{
dataGridView1["Code", dataGridView1.CurrentRow.Index].Value = frm.txtCode.Text;
dataGridView1["Name", dataGridView1.CurrentRow.Index].Value = frm.txtName.Text;
dataGridView1["Family", dataGridView1.CurrentRow.Index].Value = frm.txtFamily.Text;
dataGridView1["Phone", dataGridView1.CurrentRow.Index].Value = frm.txtPhone.Text;
}
}
همانطور که مشاهده میکنیم چنانچه کاربر بر روی سطر معتبری از دیتا گرید در سی شارپ قرار داشته باشد اطلاعات مربوط به سطر انتخابی از DataGridView به فرم دوم ارسال شده و با فشار کلید Ok از فرم فرزند (Form2) به فرم پدر بروز میگردند.
اکنون مانند مثال قبلی برای حذف کردن اطلاعات جاری از دیتاگرید یا دیتا تیبل در سطر جاری در سی شارپ بصورت زیر عمل میکنیم:
private void btnDelete_Click(object sender, EventArgs e)
{
if (dt.Rows.Count != 0)
{
if (MessageBox.Show("آيا براي حذف مطمئن هستيد؟", "حذف شود؟", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
dt.Rows[dataGridView1.CurrentRow.Index].Delete();
MessageBox.Show("سطر با موفقيت حذف گرديد", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("موردي براي حذف يافت نشد", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
برای کار با کد جستجو در دیتا گرید یا دیتا تیبل در سی شارپ میخواهیم همزمان با تایپ کاربر جستجو انجام شود.
بنابراین کد جستجو را در رویداد textChange مینویسیم:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
dt.DefaultView.RowFilter = ("Name like '%" + txtSearch.Text + "%'");
}
کد بالا برای جستجوی نام در ستون Name در دیتاتیبل انجام میشود.
همانطور که قبلا گفته شد چون دیتا تیبل به دیتا گریدویوو متصل است تغییرات بر روی دیتا تیبل بر روی دیتا گرید نیز نمایش داده میشود.
اکنون میتوانید برای دانلود این پروژه کار با datatable و datagridview در c# از زیر دانلود کنید: