مشکل در ارتباط با combo box

nazmemol

عضو جدید
سلام دوستان
تورو خدا یکی به من جواب بده ! اینقدر تو سایتای مختلف گشتم که دیگه چشام شده مثل این :confused:
حالا مشکلم چیه :
من دارم با vb.net و sql یه پروژه مینویسم . یه کامبو باکس دارم که کد رشته توشه . یه کامبو دیگه هم هست که میخوام وقتی کد رشته رو میزنم ، کد درسای اون رشته رو برام بیاره ، و نام اون درس هم بعد از انتخاب توی یه تکست باکس به طور خودکار درج بشه. من تونستم کد رشته ها رو با یه حلقه for تو کامبو بیارم ،ولی ارتباط اون با کامبو درس و تکست باکس رو نمی دونم.
به خاطر خدا یکی کمکم کنه.:cry:
قبلش ازتون تشکر میکنم
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
اگه درست متوجه شده باشم ميخوای که با انتخاب اطلاعات از يک کمبو، اطلاعات مربوط به مورد انتخابی در جايی ديگر نمايش داده بشه. درسته؟
برای اينکار راحت ترين کار استفاده از رويدادهای کمبو هست مثل SelectedIndexChanged يا SelectedValueChanged . در صورتی که اين اطلاعات از بانک خونده ميشن بايد کمبو به جدول حاوی مقادير بايند شه که برای اينکار جدول رو به عنوان DataSource به کمبو بديد و همچنين مقادير DisplayMember و ValueMember کمبو رو نيز تنظيم کنيد. هردو رشته هستند و DisplayMember رشته نام فيلد موردنظر شما جهت نمايش هست و ValueMember رشته نام فيلد کليد در جدول هست که شما با استفاده از اون ميتونی اطلاعات ديگر رو select کرده و نمايش بدی. در صورتی که از همون فيلد نمايشی استفاده ميکنی هم که هردو به يک مقدار تنظيم ميشوند.
در صورتی که اطلاعات ثابت هستند و به صورت دستی در هنگام طراحی ايجاد می شوند هم بايد با SelectedIndex کار کنيد و نيازی به موارد فوق نيست.
پس از اين مرحله بر اساس موارد گفته شده از رويداد SelectedIndexChanged يا SelectedValueChanged استفاده کنيد و در اونجا با استفاده از Property های SelectedIndex يا SelectedValue مقدار ايندکس يا کليد مورد نظر رو خونده و Select رو انجام بديد.

اميدوارم مشکلتون حل شده باشد.
 
  • Like
واکنش ها: SHRP

nazmemol

عضو جدید
کد کامبوباکس

کد کامبوباکس

سلام
بابت جوابت ممنون. ;) اما کد پر کردن کامبوباکس رشته من اینه:

Private Sub shahriye_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
newmode = False

con = New SqlConnection("Initial Catalog=a_konkor;data source=LG-BBD88C24CB11;user id=sa;password=123")
cmd = New SqlCommand("Select * from treshte", con)
da = New SqlDataAdapter(cmd)
da.Fill(ds, "treshte")
For i As Integer = 0 To ds.Tables("treshte").Rows.Count - 1
ComboBox2.Items.Add(ds.Tables("treshte").Rows(i).Item("r_id"))

Next

حالا من باید برای حل مشکلم چی کار کنم ؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
عزيزم برای پر کردن کمبو نيازی به نوشتن حلقه for نيست. کافيه Datasource رو تنظيم کنيد :

comboBox.DataSource=DataSetName.Table["TableName"];
comboBox.DisplayMember="...";
comboBox.ValueMember="...";
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
جايی که ... نوشتم نام فيلد جداول رو بنويسيد و بجای DataSetName و TableName هم نام ديتاست و جدول رو در کد خودتون بنويسيد.
 

nazmemol

عضو جدید
تشکر و دوباره سوال

تشکر و دوباره سوال

سلام نگین جون، از بابت کمکت خیلی (به توان n) ممنون:heart:
یه سوال دیگه داشتم ، من وقتی می خوام بین کامبو باکس و تکست باکس ارتباط بدم ، این errorرو میده :
the multi-part identifier "system.data.datarowview" could not be bound
مربوط به کد dr = cmd.ExecuteReader()
همین کد تو یه فرم دیگم جواب داده ولی تو بقیه فرمها جواب نمی ده!!!!!!!!!!
کد برنامه : (تو رویداد یselectedindexchenage کامبو باکس)
con = new SqlConnection(@"Data
Source=.\SQLEXPRESS;AttachDbFilename=C:\ShahriyeDB.mdf;Integrated
Security=True;User Instance=True;MultipleActiveResultSets=True")
cmd = new SqlCommand("SELECT * FROM tblReshte WHERE r_id =" +cmbCodeReshteh.Text, con)
con.Open()
dr = cmd.ExecuteReader()
if (dr.Read())
txtR_name.Text = dr.GetString(1)
dr.Close()
con.Close()


کامبو باکس هم اون طوری که گفتی پر کردم.:(
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام نگین جون، از بابت کمکت خیلی (به توان n) ممنون:heart:
یه سوال دیگه داشتم ، من وقتی می خوام بین کامبو باکس و تکست باکس ارتباط بدم ، این errorرو میده :
the multi-part identifier "system.data.datarowview" could not be bound
مربوط به کد dr = cmd.ExecuteReader()
همین کد تو یه فرم دیگم جواب داده ولی تو بقیه فرمها جواب نمی ده!!!!!!!!!!
کد برنامه : (تو رویداد یselectedindexchenage کامبو باکس)
con = new SqlConnection(@"Data
Source=.\SQLEXPRESS;AttachDbFilename=C:\ShahriyeDB.mdf;Integrated
Security=True;User Instance=True;MultipleActiveResultSets=True")
cmd = new SqlCommand("SELECT * FROM tblReshte WHERE r_id =" +cmbCodeReshteh.Text, con)
con.Open()
dr = cmd.ExecuteReader()
if (dr.Read())
txtR_name.Text = dr.GetString(1)
dr.Close()
con.Close()


کامبو باکس هم اون طوری که گفتی پر کردم.:(
سلام عزيزم. خواهش ميکنم.
يه زحمت بکش و فرم برنامه رو rar کن بذار تا کل کد رو چک کنم. راستش اينجوری نميتونم دقيق بگم چرا اين پيغامو ميده. :smile:
 

nazmemol

عضو جدید
ارسال فرم

ارسال فرم

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

پیوست ها

  • student form.rar
    35.1 کیلوبایت · بازدیدها: 0

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
طريقه بايند اطلاعاتت تو بقيه فرم ها هم به همين صورت هست؟
یعنی همه جا ديتاست رو دادی و اسم جدول زو تو رشته DataMember گذاشتی؟ گاهی اوقات اين موضوع درست جواب نميده مثل BindingContext و دوم اينک جعبه متن شما بايند شده است و ممکنه چون اطلاعاتی توش ميريزی که از منبعش نميگيره داره خطا ميده :surprised:
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
خانومی بازم خونه روش یه نگاهی ميکنم.
 

nazmemol

عضو جدید
میدونید چیه فکر می کنم این پیغام مربوط میشه به کد زیر که در رویداد load مربوط به فرم هستش:
ComboBox1.DataSource = ds.Tables("treshte")
چون وقتی که error میده این خط هم highlight خاکستری میشه:eek:
 

sasha_ic_12

عضو جدید
combo box

combo box

باسلام میخواستم بدونم تو vb.netمیشه اطلاعات یه combo box را از یه جدول بیاری و مقدار انتخاب شده را در جدول دیگه اد کنی.اگه میشه چطوری ممنون؟؟؟؟؟؟:warn:
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
باسلام میخواستم بدونم تو vb.netمیشه اطلاعات یه combo box را از یه جدول بیاری و مقدار انتخاب شده را در جدول دیگه اد کنی.اگه میشه چطوری ممنون؟؟؟؟؟؟:warn:

داده مورد نظرتون رو باید از جدول لود کنید و به کمبو بایند کنید. ValueMember رو برابر کلید و DisplayMember را برابر با تکست مورد نظر جهت نمایش قرار بدید. با تغییر کمبو، با خواندن selectedValue، مقدار کلید آیتم انتخابی را می دهد و میتوانید برای درج از آن استفاده کنید :gol:
 

vida_parsa

عضو جدید
با سلام

اگر ممکنه من رو در اين زمينه راهنمايي کنيد:

مي‌خوام يک combo box در فرمم درست کنم که دو گزينه داشته باشه و با انتخاب هر گزينه و سپس زدن دکمه گزارش اون گزينه را نمايش بده.
امکان همچين کاري وجود داره؟


يک سوال ديگه هم داشتم:

توي فرمم دو تا combo box دارم که يکي نام شرکت و يکي واحدهاست.
مي‌خوام وقتي که شرکت رو انتخاب مي‌کنم، combo box دوم فقط واحدهاي مربوط به همون شرکتي رو که انتخاب کردم نشون بده و واحدهاي همه شرکت‌ها رو با هم نشون نده.

چند راه کار که توي سايت‌هاي مختلف بود رو انجام دادم، ولي وقتي انجامشون مي‌دم combo box دوم رو خالي نشون مي‌ده.



با تشکر
 

Similar threads

بالا