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

نام تاپیک: نمایش اطلاعات با چند انتخاب

  1. #1
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نمایش اطلاعات با چند انتخاب

    سلام
    تصویر ضمیمه را نگاه کنید

    در حالت عادی اگر به جای chekboxlist یک تکست باکس باشد و عددی داخل آن قرار گیرد با توجه به ایتمهای دیگر اطلاعات مربوط به آن عدد نمایش داده میشود.
    این عدد در اینجا شماره سلولی هست که دارای مقادیری است. مثلا اگر سلول 1 را وارد کنم اطلاعاتی آن از قبیل دما و ... در بازه زمانی مشخصه نمایش داده میشود.

    ولی در این تصویر من میخواهم چندین سلول یا عدد انتخاب کنم و اطلاعات سلولهای انتخاب شده در دیتاگرید ویوو نشان داده شود.
    لطفا راهنمایی کنید

    دیتابیس اکسس
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    یعنی میخواین اطلاعات مربوط به چند سلول که توی یه جدول ذخیره شده رو توی یه gridview نمایش بدین؟

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

    نقل قول: نمایش اطلاعات با چند انتخاب

    SELECT * FROM Cell_Information
    WHERE CellNumber IN (1,2,3)


    فقط به جای اعدادی که جلوی IN نوشته شده باید شماره سلولهایی که از چک باکس ها انتخاب میشه رو بصورت رشته در بیارین و جلوی IN قرار بدین.
    آخرین ویرایش به وسیله sajadsobh : دوشنبه 06 بهمن 1393 در 20:40 عصر

  4. #4
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: نمایش اطلاعات با چند انتخاب

    آفرین. دقیقا
    چطوری باید به جای 1 و 2 و 3 شماره سلولهای تیک خورده قرار بگیره؟

  5. #5
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    شما یه sp بنویس جای مقداری جلوی IN یه متغیر رشته ای بذار و بعد اون شماره سلول ها رو بصورت رشته به اون sp ارسال کن.
    اگه نتونستی امشب اومدم واستون می نویسم.

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

    نقل قول: نمایش اطلاعات با چند انتخاب

    خب من sp رو به این شکل نوشتم:

    create proc list
    @MySting nvarchar(max)
    as
    begin
    DECLARE @sql nvarchar(max)
    IF(@MySting<>'')
    SELECT @sql = 'SELECT * FROM Daneshjoo WHERE ID IN (' + @MySting + ')'
    EXEC sp_executesql @sql
    end


    و حالا کافیه توی سی شارپ شما بیاین مقدار اون چک باکس ها رو بگیرین و بصورت رشته تحویل این sp بدین. من اومدم چندتا چک باکس توی فرم گذاشتم و این کد رو واسه پر کردن گرید نوشتم:

                 SqlConnection sqlCon = new SqlConnection("Server=.;Database=Test; Integrated Security=true");
    string m = "";
    foreach (Control X in this.Controls)
    {
    if (X is CheckBox && ((CheckBox)X).Checked)
    {
    m += X.Text + ",";
    }
    }

    if (!string.IsNullOrEmpty(m))
    {
    m = m.Substring(0, (m.Length) - 1);
    }

    SqlDataAdapter da = new SqlDataAdapter("list", sqlCon);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    da.SelectCommand.Parameters.AddWithValue("@MySting ", m);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView2.DataSource = dt;


    هرجا رو که متوجه نشدین بگین بازم توضیح بدم.

  7. #7
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    البته شما که از checkedListBox توی سی شارپ استفاده کردی کدنویسی به یه شکل دیگه میشه. من اینو نوشتم جواب داد:


                SqlConnection sqlCon = new SqlConnection("Server=.;Database=Test; Integrated Security=true");
    string m = "";

    foreach (object itemChecked in checkedListBox1.CheckedItems)
    {
    m += itemChecked.ToString() + ",";
    }

    if (!string.IsNullOrEmpty(m))
    {
    m = m.Substring(0, (m.Length) - 1);
    }

    SqlDataAdapter da = new SqlDataAdapter("list", sqlCon);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    da.SelectCommand.Parameters.AddWithValue("@MySting ", m);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView2.DataSource = dt;

  8. #8

    نقل قول: نمایش اطلاعات با چند انتخاب

    با تشکر از توضیحات کامل و عالیتون. منم تا حالا با checkedlistbox کار نکردم و به مشکل خوردم. من دیتابیسمو بهش بایند کردم ولی نمیدونم چطور مقادیرشو بدست بیارم.
    .
    من با قطعه کد زیر داده ها مو نشون دادم. اینجوری...
    .

    objDataAdapter = new SqlDataAdapter();
    objDataAdapter.SelectCommand = new SqlCommand();
    objDataAdapter.SelectCommand.Connection = clsVariable.objConnection;
    objDataAdapter.SelectCommand.CommandText = "SELECT * FROM tbl_Certificate";
    objDataAdapter.SelectCommand.CommandType = CommandType.Text;
    objDataAdapter.Fill(objDataTable = new DataTable());
    CheckedListBox1.DataSource = objDataTable;
    CheckedListBox1.DisplayMember = "Cer_Name";
    CheckedListBox1.ValueMember = "Cer_ID";

    .
    حالا چطور وقتی کاربر دکمه مثلا "تایید" رو میزنه تمام مقادیر چک دار شده رو بدست بیارم، مقدار ValueMember شون رو میخوام. حالا هر تعداد میخواد باشه.من خودم یک آرایه به تعداد طول checklistBox درست کردم ولی نمیدونم چطور مقادیر چکدار شده رو بهش بدم. لطفاً راهنمایی کنید. ممنون

  9. #9
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

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

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

    نقل قول: نمایش اطلاعات با چند انتخاب

    این کلاس رو دانلود کنید. به قسمت کنترل ها اضافه کنید. یه نوع چک لیست باکس به کنترل ها اضافه میشه که DataSource, DisplayMember, ValueMember داره. حالا با استفاده از قطعه کد زیر می تونید اون چک لیست باکس رو پر کنید.

                SqlConnection sqlCon = new SqlConnection("Server=.;Database=Test; Integrated Security=true");
    SqlDataAdapter da = new SqlDataAdapter("select * from Daneshjoo", sqlCon);
    DataTable dt = new DataTable();
    da.Fill(dt);
    exCheckedListBox1.DataSource = dt;
    exCheckedListBox1.DisplayMember = "name";
    exCheckedListBox1.ValueMember = "ID";

  11. #11

    نقل قول: نمایش اطلاعات با چند انتخاب

    سلام

    اول یک کلاس به نام (TestClass) تعریف میکنیم که شامل دو پراپرتی Display_ و Value_ هستش

    class TestClass
    {
    private string _display;
    private string _value;
    public string _Display
    {
    get { return _display; }
    set { _display = value; }
    }
    public string _Value
    {
    get { return _value; }
    set { _value = value; }
    }
    public override string ToString()
    {
    return _Display;
    }
    }



    حالا توسط یه متد (AddItems)، تعدادی آیتم آزمایشی داخل checkedListBox میریزیم

    private void AddItems()
    {
    List<TestClass> lst = new List<TestClass>();
    lst.Add(new TestClass() { _Display = "One", _Value = "1" });
    lst.Add(new TestClass() { _Display = "Two", _Value = "2" });
    lst.Add(new TestClass() { _Display = "Three", _Value = "3" });
    lst.Add(new TestClass() { _Display = "Four", _Value = "4" });
    lst.Add(new TestClass() { _Display = "Five", _Value = "5" });
    ((ListBox)checkedListBox1).DisplayMember = "_Display";
    ((ListBox)checkedListBox1).ValueMember = "_Value";
    ((ListBox)checkedListBox1).DataSource = lst;
    }



    و نهایتا با این متد (GetCheckedItems) ، آیتم های انتخاب شده رو درون یه لیست میریزیم

    private void GetCheckedItems()
    {
    List<string> CheckValues = new List<string>();
    foreach (Object c in checkedListBox1.CheckedItems)
    {
    CheckValues.Add(((TestClass)c)._Value);
    }
    }



    اینجا چون من checkedListBox رو به دیتابیس بایند نکرده بودم ، برای داشتن DisplayMember و ValueMember مراحل 1 و 2 رو هم انجام دادم تا متوجه عملکرد کد بشید، بنابراین شما کافیه فقط مرحله سوم رو انجام بدید.



    موفق باشید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  12. #12

    نقل قول: نمایش اطلاعات با چند انتخاب

    با سلام خدمت دوستان عزیز.
    من باز به یک مشکل دیگه برخورد کردم.
    من یک فرم دارم که داخلش تامین کننده ها ثبت میکنم. بعد تامین کننده ها احتمال داره چند نوع گواهینامه داشته باشن. مثلا iso 2000 و iso 2001 و ... برای همین من از لیست باکس استفاده کردم و این امکان رو به کاربر دادم که گواهینامه ها رو تعریف کنه و زمانی که تامین کننده رو تعریف میکنه بتونه گواهینامه ها رو هم انتخاب کنه. مثل شکل زیر.
    001.png

    حالا سوال اینجاس:
    من میخوام یک تامین کننده رو ویرایش کنم.! چیزی که من دارم شماره ردیف تامین کننده و شماره گواهینامه های اونه.! یا نام گواهینامه. چطور میشه وقتی دکمه ویرایش رو زد اون آیتمایی که ثبت شده خودش تیک دار بشه.
    مثلا: آبکاری احمدی.، گواهینامه 2000 و 9000 رو داره، حالا که ویرایشو میزنم چطور بهش بگم اونی که 2000 هست یا 9000 هستو تیک بزن.!؟
    مثلا میگم چیزی شبیه به این داره توی لیست باکس؟

    forech var item in datatable
    checklistboxike.name = item.name = chekeded true beshe

  13. #13
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    منظورتون اینه که هر تامین کننده می تونه چند تا گواهینامه داشته باشه؟! شما واسه اینکه به هر تامین کننده یه گواهینامه بدین چیکار کردین؟

  14. #14

    نقل قول: نمایش اطلاعات با چند انتخاب

    سلام، بله دیگه، گفتم که هر تامین کننده می تونه چندتا گواهینامه داشته باشه، واسه دادن گواهینامه ها هم از جدول جدا استفاده کردم.
    مثلا:
    جدول تامین کننده: ردیف، نام تامین کننده، تلفن تماس و ....
    جدول گواهینامه ها: ردیف، نام گواهینامه و .... (این جدولیه که نامشون و مقدارشون توی چک لیست باکس میاد)
    جدول کمکی: ردیف تامین کننده، ردیف گواهینامه
    .
    تا اینجاش مشکلی نیست من نوشتم و ذخیره هم کردم حالا موقعه ویرایش چطور بهش بفهمونم تامین کننده احمدی که مثلا دوتا گواهینامه 2000 و 9000 رو داره وقتی ویرایشو میزنه خودش اون دوتارو تیک بزنه، مثلا من یک select از دیتابیسم بگیرم که داخلش نام گواهینامه ها باشه، حالا به اون چک لیست باکس چطور بفهمونم همونایی که توی select هم است تیک بخوره (البته انگار اون سلکت توی دیتاتیبل میاد دیگه، باید بگم اونایی که توی دیتاتیبل هست تیک بخوره خودش اتوماتیک)
    .
    امیدوارم متوجه منظورم شده باشید. مرسی.

  15. #15
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    خب من نمیدونم شما چک لیست باکس رو چطور مقدار دهی کردین. ولی کوئری مربوط به اون اینجوری میشه. شما باید بیای بببنی توی جدول کمکی که داری، از آیدی User ِ انتخابی چه آیدی هایی از گواهینامه ها هست. اگه آیدی user رو داشته باشیم میشه یه چیزی مثل این:

    CREATE PROCEDURE Get_iso
    @userID int
    AS
    BEGIN
    SELECT isoID FROM Jadval_Komaki
    WHERE userID = @userID
    END


    که به جای @userID شما باید آیدی user رو بعنوان پارامتر ارسال کنید. با این کوئری لیست تمام گواهینامه های مربوط به کاربری که آیدی ش رو فرستادید لیست میشه. حالا فقط کافیه توی سی شارپ بیاین این آیدی های بدست اومده رو واکشی کنین. من از این روش استفاده میکنم. یه ArrayList تعریف میکنم و همه آیدی ها رو توش میریزم و با یه دستور foreach ازشون استفاده میکنم.

        public ArrayList GET_ISO(int UserID)
    {
    try
    {
    ArrayList ISO = new ArrayList();
    SqlCommand cmd = new SqlCommand("Get_iso", SqlCon);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@userID", UserID);
    SqlCon.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    if (dr[1] != DBNull.Value)
    ISO.Add(dr[1].ToString());
    }
    dr.Close();
    return ISO;
    }
    finally
    {
    if (SqlCon.State != ConnectionState.Closed)
    {
    SqlCon.Close();
    }
    }
    }


    توی این تابع فقط باید UserID رو بفرستید. با فرض به اینکه آیدی ایزو ها ستون شماره 2 باشه ( که واسه همین من از dr[1] استفاده کردم) این تابع لیست ایزو آیدی های مربوط به UserID ارسالی رو توی یه ArrayList برمیگردونه. حالا موقع لود شدن چک لیست باکس با این روش می تونی مقداردهی کنی!

  16. #16

    نقل قول: نمایش اطلاعات با چند انتخاب

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

    private bool FillCertificateList()
    {
    try
    {
    objDataAdapter = new SqlDataAdapter();
    objDataAdapter.SelectCommand = new SqlCommand();
    objDataAdapter.SelectCommand.Connection = clsVariable.objConnection;
    objDataAdapter.SelectCommand.CommandText = "SELECT * FROM tbl_Certificate";
    objDataAdapter.SelectCommand.CommandType = CommandType.Text;
    objDataAdapter.Fill(objDataTable = new DataTable());
    List<clsCheckListBox> objCheck = new List<clsCheckListBox>();
    for (int i = 0; i < objDataTable.Rows.Count; i++)
    {
    objCheck.Add(new clsCheckListBox() { Display = objDataTable.Rows[i][1].ToString(), Value = objDataTable.Rows[i][0].ToString() });
    }
    clbCertificate.DataSource = objCheck;
    clbCertificate.DisplayMember = "Display";
    clbCertificate.ValueMember = "Value";


    return true;
    }
    catch
    {
    FMessegeBox.FarsiMessegeBox.Show("فرم برنامه به صورت اتوماتیک بسته میشود، لطفا دوباره تلاش کنید\nدر صورت مشاهده مجدد این خطا با پشتیبانی تماس بگیرید", "خطـــا",
    FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Error);
    this.Close();
    return false;
    }
    }

    .
    حا با فرض اینکه طبق کدهای شما من آی دی های ایزوهارو در اوردم، لیست باکسمم که طبق کد بالا پر شده.!
    حالا من یک تامین کننده رو انتخاب میکنم و ویرایشو میزنم.، فرم ویرایش که اومد بالا من میخوام اون گواهینامه هایی که طبق کد شما آی دی هاشو در اوردم تیک بخوره.! اینو چکار کنم.
    میخوام بگم
    توی لیست باکسی که (طبق کد خودم) پر شده--- اوناییی که آی دی شون (طبق کد شما) توی IsoID هست --- تیک بخوره

  17. #17
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: نمایش اطلاعات با چند انتخاب

    سجاد جان متأسفانه منم خیلی دنبال این موضوع گشتم ولی نتونستم راه حلی واسش پیدا کنم. بدست آوردن آیدی ها کار مشکلی نیست، اینکه بشه با استفاده از مقادیر value آیتم های این چک لیست باکس رو تیک زد مسئله اصلیه که من هیچ چیزی پیدا نکردم. از دوستانِ دیگه تقاضا دارم اگه می تونند کمک کنند.

  18. #18

    نقل قول: نمایش اطلاعات با چند انتخاب

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

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

  1. سوال: نمایش اطلاعات درست چند سطری در کریستال ریپورت
    نوشته شده توسط man_iran در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 20 اسفند 1389, 10:56 صبح
  2. مبتدی: نمایش اطلاعات بصورت چند سطری
    نوشته شده توسط nassim0 در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: سه شنبه 06 مهر 1389, 12:54 عصر
  3. سوال: نمایش اطلاعات از طریق انتخاب نودهای treeview
    نوشته شده توسط caspiansea در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 14 بهمن 1387, 07:39 صبح
  4. نمایش اطلاعات در چند صفحه...
    نوشته شده توسط monaizadi در بخش PHP
    پاسخ: 9
    آخرین پست: سه شنبه 14 آبان 1387, 18:05 عصر
  5. نمایش اطلاعات از چند جدول در یک دیتاگرید
    نوشته شده توسط jannati در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 19 مهر 1383, 18:30 عصر

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

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