تغییر مقدار یک سلول datagridview در هنگام نمایش
سلام دوستان
من دارم روی برنامه حضور و غیاب برای یک آموزشگاه کار میکنم. این آموزشگاه سه نوع کلاس برگزار میکند، کلاس آنلاین، کلاس حضوری و ورکشاپ یا همان کارگاه، حالا این اطلاعات در دیتابیس به صورت اعداد ۱، ۲ و ۳ ذخیره شده است. هدف اینکه در هنگام نمایش در datagridview به عنوان مثال بجای عدد یک عنوان آنلاین نمایش داده بشه، چندتایی متد در اینترنت پیدا کردم اما کار نکرد.
ممنون میشم راهنمایی کنید.
نقل قول: تغییر مقدار یک سلول datagridview در هنگام نمایش
نحوه فراخوانی اطلاعات از دیتابیس به چه صورت می باشد؟
اگه اطلاعات رو به صورت دیتا تیبل هست
می تونی با دستور زیر به هر سطر مشخصی از جدول دسترسی داشته باشی
using System;
using System.Data;
using System.Windows.Forms;
namespace datagrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("class name", typeof(string));
dt.Rows.Add("1", "Online class");
dt.Rows.Add("2", "Attendance class");
dt.Rows.Add("3", "Workshop class");
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
dt.Rows[0][1] = "کلاس آنلاین";
dt.Rows[1][1] = "کلاس حضوری";
dt.Rows[2][1] = "کلاس کارگاه";
}
}
}
1 ضمیمه
نقل قول: تغییر مقدار یک سلول datagridview در هنگام نمایش
از DataSet استفاده کردم. بعد از مشورت با یکی از دوستان تصمیم گرفتم از foreach استفاد کنم و کد این شکلی شد:
private void frm_CourseList_Load(object sender, EventArgs e)
{
var result = course.GetData();
if (result.Rows.Count > 0)
foreach (var item in result)
{
if (item.CourseType == "1")
{
item.CourseType = "آنلاین";
}
else if (item.CourseType == "2")
{
item.CourseType = "حضوری";
}
else
{
item.CourseType = "کارگاه";
}
}
dgv_CourseList.DataSource = result;
dgv_Style();
}
اما نمی دونم چرا خروجی این شکلی میشه:ضمیمه 152385
وقتی هم در خط آخر بجای else از else if استفاده میکنم و شرط میزارم دوباره همه رو به صورت عدد نشون میده
نقل قول: تغییر مقدار یک سلول datagridview در هنگام نمایش
سلام دوست عزیز:
به نظر من اطلاعات مورد نظر رو توسط یک view از sql server فرا خوانی کنید و در هنگام ساخت view شرط رو قرار دهید.
Create view V_Notes
With encryption
As
Select N.NoteId, N.NoteSubjects, N.NoteText, N.NoteCreatedDate, U.UserFirstName + ' ' + U.UserLastName as FullName,
(Select Case When N.NoteState = 0 then N'خوانده نشده' When N.NoteState = 1 then N'خوانده شده' end) as PersianNoteState
From TBL_Notes as N join TBL_Users as U
On N.UserId = U.UserId
go
موفق باشید.