0 امتیاز

سلام دوستان عزیز، من با دستور زیر کمبوباکس رو از اطلاعات موجود در فایل text که در کنار برنامه قرار دادم پر می کنم، فقط مشکلی که هست اینه که هربار فرم من رفرش میشه، حلقه اجرا میشه و دوباره پارامترها به کمبوباکس اضافه می شوند. چطور این مشکل رو برطرف کنم؟

        private void Tahsilat()
        {
            string[] lineOfContents = File.ReadAllLines(Application.StartupPath + "\\Atach\\Tahsilat.txt");
            foreach (var line in lineOfContents)
            {
                string[] tokens = line.Split(',');
                comboBox6.Items.Add(tokens[0]);
            }
        }

 

بسته شده
سلام، منظورتون از رفرش فرم چیه؟ مگه چطور رفرش می کنید؟
توسط (3,483 امتیاز) 6 13 87

همونه هیچ فرقی نداره؟

ببینید فقط نام فیلد رو اضافه کنید

بهتره این مورد رو توی لیست باکس نمایش بدید یعنی چطور میشه اون 10 رکورد رو توی یه کمبوباکس نمایش بدید؟

 

 string pat = Application.StartupPath + "\\Atach\\Tahsilat.txt";
            StreamReader sr = new StreamReader(pat);

            while (!sr.EndOfStream)
            {
               
                comboBox1.Items.Add(sr.ReadLine() + " , " + sr.ReadLine() + " , " + sr.ReadLine() + " , " + sr.ReadLine());
            }

            sr.Close();
            sr.Dispose();
توسط (7,164 امتیاز) 4 7 141

3 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام دوست عزیز ببینید منظورتون همین بود??

ضمنا لازم نیست تو باتن2 فرم رو لود کنید کافیه اینوبزارید--Tahsilat();

http://www.w3-farsi.com/forum/?qa=blob&qa_blobid=10608695774231605743

شما، الان در همین فرم زمانی که اجرا شد، بدون هیچ کاری روی گزینه refresh کلیک کنید، ببینید چه اتفاقی در کمبوباکس می افتد؟

هر بار که شما روی دکمه رفرش کلیک می کنید آیتم های کمبوباکس مجددا اضافه می شوند، من می خوام جلوی این کار گرفته بشه و فقط اگر گزینه جدیدی در فایل تکست بود به کمبو اضافه بشود
توسط (252 امتیاز) 4 13 22

فقط کد داخل متد تسهیلاتو جایگزین کن

  sr = new StreamReader(path);
                string se = sr.ReadLine();

                while (se != null && !comboBox1.Items.Contains(se))
                {
                    comboBox1.Items.Add(se);
                    se = sr.ReadLine();

                }

 

ویرایش شده توسط
توسط (7,164 امتیاز) 4 7 141
+1 امتیاز

سلام

شما اگه قصد دارید فقط یک بار فیلدی از دیتابیس رو نمایش بدید بهتره از این روش استفاده کنید

 


 string pat = Application.StartupPath + "\\Atach\\Tahsilat.txt";
            StreamReader sr = new StreamReader(pat);

            while (!sr.EndOfStream)
            {
                comboBox1.Text=sr.ReadLine() ;
            }

            sr.Close();
  sr.Dispose();

 

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

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

کد شما را هم که گذاشتم فقط آخرین رکورد را کمبو باکس اضافه می کنه.

لطفا کمک کنید: لینک سورس من:

http://s8.picofile.com/file/8323169000/App6.zip.html
ویرایش شده توسط
توسط (252 امتیاز) 4 13 22
+1 امتیاز

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

 

sr = new StreamReader(path);
              string se = sr.ReadLine();
 
              while (se != null && !comboBox1.Items.Contains(se))
              {
                  comboBox1.Items.Add(se);
                  se = sr.ReadLine();
 
              }
 

 

سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,919 کاربر

دسته بندی ها

...