PDA

View Full Version : نمایش اطلاعات در دیتا گرید ویو



asghar2008
دوشنبه 11 دی 1391, 09:40 صبح
با سلام

دوستان من تو پایگاه داده 2تا جدول دارم .جدول اولی مشخصات فرد و جدول دومی رای شخص:

جدول اول: نام - نام خانوادگی - سن - تحصیلات - رای
جدول دوم: ID -رای

تو جدول دوم فیلد ID و رای به صورت زیر است:

فیلدID __________________فیلد رای
مقادیر در جدول
1 _______________________بله
2 ______________________ خیر
3_______________________ ممتنع

دوستان من نمیخوام به صورت مسقیم رای رو(بله ،خیر،ممتنع) تو جدول اول ذخیره کنم. فقط میخوام ID رای(1،2،3) رو تو جدول اولی ذخیره کنم.تا اینجا مشکلی نیست

مشکل ایجاست وقتی اطلاعات تو دیتا گرید ویو نمایش داده میشه نمیخوام اعداد رو نمایش بده (یعنی اگه در جدول اولی (فیلد رای) عدد 1 بود بله ، عدد2 بود خیر و عدد 3 بود ممتنع نمایش داده بشه).

با تشکر

Alireza.imani
دوشنبه 11 دی 1391, 11:10 صبح
سلام...می تونید براش if بگذارید مثلا:


if (dataGridViewX1.CurrentRow.Cells["رای"]."Value.ToString() == "1)
dataGridViewX1.CurrentRow.Cells["رای"].Value = "ممتنع";

وبرای اینکه اعداد رو نشون نده:


dataGridViewX1.Columns["اعداد"].Visible = false;

veniz2008
دوشنبه 11 دی 1391, 11:19 صبح
با سلام

دوستان من تو پایگاه داده 2تا جدول دارم .جدول اولی مشخصات فرد و جدول دومی رای شخص:

جدول اول: نام - نام خانوادگی - سن - تحصیلات - رای
جدول دوم: ID -رای

تو جدول دوم فیلد ID و رای به صورت زیر است:

ID رای
----------------------
1 بله
2 خیر
3 ممتنع

دوستان من نمیخوام به صورت مسقیم رای رو(بله ،خیر،ممتنع) تو جدول اول ذخیره کنم. فقط میخوام ID رای(1،2،3) رو تو جدول اولی ذخیره کنم.تا اینجا مشکلی نیست

مشکل ایجاست وقتی اطلاعات تو دیتا گرید ویو نمایش داده میشه نمیخوام اعداد رو نمایش بده
سلام.
میتونید یه جدول سومی هم داشته باشید که شامل RayID و Ray باشه (مثلا 1 بشه بلی، 2 بشه خیر و 3 بشه ممتنع)،یا میتونید شبیه به چیزی که دوستمون گفتن عمل کنید( البته من خودم معمولا روی دیتاتیبل مقادیر رو چک میکنم و همونجا درصورت نیاز مقادیر رو اصلاح و درون گرید می ریزم).
موفق باشید.

plus
دوشنبه 11 دی 1391, 14:02 عصر
دو کار میشه کرد. یکی همونطور که دوستمون گفتن استفاده از یک جدول سوم، که متن مربوط به هر رای رو نگه داره، راه دوم استفاده از رویداد CellFormatting مربوط به Grid:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == /** Specfied Column Index **/)
{
switch ((int)e.Value)
{
case 1:
e.Value = "one";
e.FormattingApplied = true;
break;
case 2:
e.Value = "trow";
e.FormattingApplied = true;
break;
}
}
}
من راه اول رو پیشنهاد میکنم.

samadblaj
دوشنبه 11 دی 1391, 14:19 عصر
سلام ؛

ببخشید دوستان این روش رو بخوای از سمت SQL انجام بدیم به چه شکل هستش ؟ اینجور توی سرعت تاثیر به سزایی خواهد داشته درسته؟

if (e.ColumnIndex == 1)
{
switch ((int)e.Value)
{
case 1:
e.Value = "one";
e.FormattingApplied = true;
break;
case 2:
e.Value = "trow";
e.FormattingApplied = true;
break;
}
}
از int خطا میگیره ؟

راه اول فکر نکنم برای سه آیتم مثل آرا مناسب باشه جدول درست کرد؟
=============
اینم یه خطار رو مکررا اجرا میکنه....

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView1 .CurrentRow.Cells["id"].Value.ToString() == "1")
dataGridView1.CurrentRow.Cells["id"].Value = "یک";
}

ببخشید Plus جان من برای سهولت سوالتم رو یکی کردم...

plus
دوشنبه 11 دی 1391, 14:38 عصر
باید دو تا جدول رو با هم JOIN کنید. http://www.w3schools.com/sql/sql_join.asp. نه، دیتابیس برای همین کار ها ساخته شده.

alitootoo
دوشنبه 11 دی 1391, 15:10 عصر
به نام خدا
دوستان عزیز
دستور اس کیو ال برای update query در grid view را لطفا بفرمایید