PDA

View Full Version : سوال: تغییر مقدار یک سلول datagridview در هنگام نمایش



GreenMan2020
جمعه 09 آبان 1399, 17:39 عصر
سلام دوستان
من دارم روی برنامه حضور و غیاب برای یک آموزشگاه کار میکنم. این آموزشگاه سه نوع کلاس برگزار میکند، کلاس آنلاین، کلاس حضوری و ورکشاپ یا همان کارگاه، حالا این اطلاعات در دیتابیس به صورت اعداد ۱، ۲ و ۳ ذخیره شده است. هدف اینکه در هنگام نمایش در datagridview به عنوان مثال بجای عدد یک عنوان آنلاین نمایش داده بشه، چندتایی متد در اینترنت پیدا کردم اما کار نکرد.
ممنون میشم راهنمایی کنید.

M.sheaikhzadeh
شنبه 10 آبان 1399, 08:33 صبح
نحوه فراخوانی اطلاعات از دیتابیس به چه صورت می باشد؟
اگه اطلاعات رو به صورت دیتا تیبل هست
می تونی با دستور زیر به هر سطر مشخصی از جدول دسترسی داشته باشی


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] = "کلاس کارگاه";
}
}
}

GreenMan2020
یک شنبه 11 آبان 1399, 07:59 صبح
از 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 استفاده میکنم و شرط میزارم دوباره همه رو به صورت عدد نشون میده

voice.of.silence
پنج شنبه 22 آبان 1399, 07:40 صبح
سلام دوست عزیز:
به نظر من اطلاعات مورد نظر رو توسط یک 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


موفق باشید.