نمایش نتایج 1 تا 17 از 17

نام تاپیک: تعویض مقادیر datagridview فقط برای کاربر

  1. #1

    تعویض مقادیر datagridview فقط برای کاربر

    سلام دوستان میخواستم بدونم چطور میشه مقادیر یه گرید ویو فقط برای نمایش تغییر داد؟؟
    مثلا من برای جنسیت از بولین استفاده کردم اما میخوام وقتی کاربرم اطلاعات داخل گریدویو میبینه زن و مرد ببینه؟؟چیکار باید بکنم

  2. #2

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    دوست عزیز یه جدول دیگه برای جنسیت تعریف کن که شامل دو فیلد دباشه یکی ID از نوع bit و دیگری Name از نوع nvarchar بعد توی جدول اصلیت هم فیلد جنسیت رو bit بذار و Relation بین دو جدول رو مشخص کن. بعد با یه View ساده به جای نمایش True و یا False فیلد Name از جدول جنسیت رو نمایش بده. موفق Bind کردن به DataGridView هم از View سلکت بزن.
    موفق باشی.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آمل
    پست
    207

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    سلام
    البته با Union هم میتونی query رو بنویسی
    SELECT column1, column2, 'مرد' FROM Items WHERE sex = 0

    UNION

    SELECT column1, column2, 'زن' FROM Items WHERE sex = 1

    موفق باشی

  4. #4

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    ممنونم به جز ساختن جدول مجازی و جدول دوم کار دیگه ای نمیشه کرد؟؟؟؟؟حتما باید از داخل بانکمون جدول و Query بسازیم؟؟؟؟؟؟؟

  5. #5
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    سلام دوست عزیز،
    SELECT   
    CASE Sex
    WHEN '0' THEN 'مرد'
    WHEN '1' THEN 'زن'
    ELSE 'نامشخص'
    END,
    Name
    FROM users

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آمل
    پست
    207

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    البته اگه بخوای توی سی شارپ اینکارو بکنی
            private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'newDataSet.Items' table. You can move, or remove it, as needed.
    this.itemsTableAdapter.Fill(this.newDataSet.Items) ;

    for (int i = 0; i < myDataGridView.RowCount; i++)
    {
    if (Convert.ToBoolean(myDataGridView.Rows[i].Cells[3].Value))
    myDataGridView.Rows[i].Cells[4].Value = "مرد";
    else
    myDataGridView.Rows[i].Cells[4].Value = "زن";

    }
    }

    برای این کار یه ستون باید اضافه کنی.
    اگه بازم مشکلی داشتی بگو.

  7. #7
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    راحت ترین راه ممکن

    این کد را بعد از نمایش گریدت قرار بده

    for (int i = 0; i < grd1.Rows.Count; i++)
    for (int j = 0; j < grd1.ColumnCount; j++)
    {
    if (grd1.Rows[i].Cells[j].Value.ToString() == "1")
    grd1.Rows[i].Cells[j].Value = "زن";
    else if (grd1.Rows[i].Cells[j].Value.ToString() == "0")
    grd1.Rows[i].Cells[j].Value = "مرد";
    }

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آمل
    پست
    207

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    سلام
    نقل قول نوشته شده توسط zayens مشاهده تاپیک
    راحت ترین راه ممکن

    این کد را بعد از نمایش گریدت قرار بده

    for (int i = 0; i < grd1.Rows.Count; i++)
    for (int j = 0; j < grd1.ColumnCount; j++)
    {
    if (grd1.Rows[i].Cells[j].Value.ToString() == "1")
    grd1.Rows[i].Cells[j].Value = "زن";
    else if (grd1.Rows[i].Cells[j].Value.ToString() == "0")
    grd1.Rows[i].Cells[j].Value = "مرد";
    }
    ستونی که datagridview برای نوع داده "bit" ایجاد میکنه از نوع CheckBox هستش، و برای مقایسه مقدارش باید true یا false بودنشو چک کنیم.
    مشکل دیگه اینه که نباید کلیه سلول های دیتا گرید رو چک کنیم، فقط همون ستونی که باید مقایسه روش انجام بگیره.
    موفق باشی

  9. #9
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    نقل قول نوشته شده توسط omid_csh مشاهده تاپیک
    ستونی که datagridview برای نوع داده "bit" ایجاد میکنه از نوع CheckBox هستش، و برای مقایسه مقدارش باید true یا false بودنشو چک کنیم.
    مشکل دیگه اینه که نباید کلیه سلول های دیتا گرید رو چک کنیم، فقط همون ستونی که باید مقایسه روش انجام بگیره.
    موفق باشی
    یعنی مثلا یکی از ستونهای دیتاگریدت چکباکس داره و مثلا اگر چکمارک بود یعنی مرد و اگر نبود یعنی زن؟

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آمل
    پست
    207

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    سلام
    نقل قول نوشته شده توسط zayens مشاهده تاپیک
    یعنی مثلا یکی از ستونهای دیتاگریدت چکباکس داره و مثلا اگر چکمارک بود یعنی مرد و اگر نبود یعنی زن؟
    اگه دیتا گرید رو به یک منبع داده ای بایند کنید، آره، یه ستون از نوع چک باکس ایجاد میشه.
    حالا بستگی به این داره که شما صفر یا یک رو برای مرد انتخاب کردین یا زن، موقع ورود اطلاعات.

  11. #11
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    نقل قول نوشته شده توسط omid_csh مشاهده تاپیک
    سلام

    اگه دیتا گرید رو به یک منبع داده ای بایند کنید، آره، یه ستون از نوع چک باکس ایجاد میشه.
    حالا بستگی به این داره که شما صفر یا یک رو برای مرد انتخاب کردین یا زن، موقع ورود اطلاعات.
    اولا امکان تغییر چکباکس به تکست باکس توی گرید امکان نداره
    درواقع نمیشه DatagridGridViewCheckBoxColumn را به Column Type دیگری تغییر داد
    برای اینکار یه راه وجو داره


    private void ShowDataGrid()
    {
    //اول یه ستون جدید باید ایجاد بشه
    grd.Columns.Add("KINDcolumn", "جنسیت");

    for (int i = 0; i < grd.Rows.Count; i++)
    {

    //...یعنی اگر چکباکس ستون "کایند" علامت داشت آنگاه
    if (Convert.ToString(grd.Rows[i].Cells["KIND"].Value) == "true")

    {
    //آنگاه درستون جدیدیکه ساختیم(درهمان ردیف)"مرد"راجایگذاری کن
    grd.Rows[i].Cells["KINDcolumn"].Value = "مرد";
    }
    else if (Convert.ToString(grd.Rows[i].Cells["KIND"].Value) == "false")
    {
    grd.Rows[i].Cells["KINDcolumn"].Value = "زن";
    }

    }
    //درآخر ستونی که داخلش چکباکس داره باید حذف بشه
    grd.Columns.Remove("KIND");
    }


    دو تاعکس هم برای مثال گذاشتم که نحوه ی نمایش گرید را قبل از اجرای کد بالا و بعد از اجرای کد بالا نشون میده
    اگر ابهامی هست بپرسید
    grd1.jpggrd2.jpg

  12. #12
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    اگر جواب گرفتین با یه تشکر منو خبر کنین!

  13. #13

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    یاد دلفی بخیر یه فیلد محاسباتی داشت خودش حساب می کرد.
    ازین دردسرا نداشتیم
    من وقتی ببینم دردسر زیاد داره و گریدها زیادن هردو فیلد رو در جدول میزارم
    افزونگی داره اما دردسرش کمتره

  14. #14
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    نقل قول نوشته شده توسط rahdar مشاهده تاپیک
    یاد دلفی بخیر یه فیلد محاسباتی داشت خودش حساب می کرد.
    ازین دردسرا نداشتیم
    من وقتی ببینم دردسر زیاد داره و گریدها زیادن هردو فیلد رو در جدول میزارم
    افزونگی داره اما دردسرش کمتره
    افزونگی داره اما دردسرش کمتره!!!

    جناب شما برگرد به همون دلفیتون که دردسرشم کمتره!

  15. #15

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    ببخشید
    قرار دادن دو فیلد رو بیشتر برای تاریخ شمسی میلادی میکنم
    برای جنسیت همون متن رو قرار میدم تا نوع منطقی
    به نظر من که راحتتر میشه باهاش کار کرد
    تو ویرایش و ورود فرم هم میشه از کومبو استفاده کرد

    جناب شما برگرد به همون دلفیتون که دردسرشم کمتره!
    عذر می خوام نمی دونستم نظر من به شما برمی خوره

  16. #16
    کاربر تازه وارد آواتار hamed shahba
    تاریخ عضویت
    آبان 1389
    محل زندگی
    زیر آسمان خدا
    سن
    35
    پست
    68

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    نقل قول نوشته شده توسط omid_csh مشاهده تاپیک
    سلام


    ستونی که datagridview برای نوع داده "bit" ایجاد میکنه از نوع CheckBox هستش، و برای مقایسه مقدارش باید true یا false بودنشو چک کنیم.
    مشکل دیگه اینه که نباید کلیه سلول های دیتا گرید رو چک کنیم، فقط همون ستونی که باید مقایسه روش انجام بگیره.
    موفق باشی

    Error.jpg

  17. #17

    نقل قول: تعویض مقادیر گریدویو فقط برای کاربر

    نقل قول نوشته شده توسط zayens مشاهده تاپیک
    اولا امکان تغییر چکباکس به تکست باکس توی گرید امکان نداره
    درواقع نمیشه DatagridGridViewCheckBoxColumn را به Column Type دیگری تغییر داد
    برای اینکار یه راه وجو داره


    private void ShowDataGrid()
    {
    //اول یه ستون جدید باید ایجاد بشه
    grd.Columns.Add("KINDcolumn", "جنسیت");

    for (int i = 0; i < grd.Rows.Count; i++)
    {

    //...یعنی اگر چکباکس ستون "کایند" علامت داشت آنگاه
    if (Convert.ToString(grd.Rows[i].Cells["KIND"].Value) == "true")

    {
    //آنگاه درستون جدیدیکه ساختیم(درهمان ردیف)"مرد"راجایگذاری کن
    grd.Rows[i].Cells["KINDcolumn"].Value = "مرد";
    }
    else if (Convert.ToString(grd.Rows[i].Cells["KIND"].Value) == "false")
    {
    grd.Rows[i].Cells["KINDcolumn"].Value = "زن";
    }

    }
    //درآخر ستونی که داخلش چکباکس داره باید حذف بشه
    grd.Columns.Remove("KIND");
    }


    دو تاعکس هم برای مثال گذاشتم که نحوه ی نمایش گرید را قبل از اجرای کد بالا و بعد از اجرای کد بالا نشون میده
    اگر ابهامی هست بپرسید
    grd1.jpggrd2.jpg
    بسیار عالی ممنونم. فقط یک مشکلی برای من داشت که کد شمارو به اینت کانورتش کردم بجای استرینگ و بجای ترو فالس از صفرو یک استفاده کردم مشکلم برطرف شد...

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: جمعه 09 آبان 1399, 17:49 عصر
  2. پاسخ: 4
    آخرین پست: پنج شنبه 14 آبان 1394, 23:09 عصر
  3. پاسخ: 8
    آخرین پست: شنبه 21 اردیبهشت 1392, 12:33 عصر
  4. سوال: تعویض آیکون بدون تعویض DLL
    نوشته شده توسط lordarma در بخش برنامه نویسی در 6 VB
    پاسخ: 16
    آخرین پست: یک شنبه 09 اسفند 1388, 15:40 عصر
  5. تعویض datagridview برنامه
    نوشته شده توسط behzadk در بخش C#‎‎
    پاسخ: 0
    آخرین پست: پنج شنبه 17 اردیبهشت 1388, 23:02 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •