Sortare cu ajutorul Combo Box
Last Updated: Mar 24 2007 23:34, Started by
dumitru_liviu
, Mar 22 2007 20:40
·
0
#1
Posted 22 March 2007 - 20:40
Salutare. Sper sa gasesc ajutorul aici.
Vreau sa fac o aplicatie in Visual Basic 2005 Express Edition folosind o baza de date in SQL Server 2005 Express Edition. Baza de date se numeste HOTEL si are tabelele: CAMERE (NrCamera, CodTipCamera, Etaj, StareCamera, Detalii) si TIPCAMERE (CodTipCamera, DenTipCamera). Valori: CodTipCamera: AP, S, D DenTipCamera: Apartament, Single, Double Am adaugat BD la projectul din VB. Am folosit drag and drop si am adus tabela CAMERE in form sub forma de DataGridView. Functioneaza perfect, imi apar datele din BD. Apoi am facut un ComboBox (denumit "cboDenTipCamera") la care i-am setat Data Source: TIPCAMEREBindingSource1, iar la Display Member: DenTipCamere. Functioneaza si asta perfect, cand rulez aplicatia, in ComboBox imi apar valorile din DenTipCamere (Apartament, Single, Double). Ceea ce vreau eu sa fac este sa fac sa imi apara in acel DataGridView (unde acum imi apar toate datele din tabela CAMERE, adica toate camerele Single, toate Double si toate Apartament) doar camerele Single (sau doar camerele Double) prin selectarea valorii din ComboBox. Adica, cand selectez din ComboBox valoarea Double, in DataGridView sa imi afiseze doar camerele Double. Cand selectez din ComboBox valoarea Single, in DataGridView sa imi afiseze doar camerele Single. La fel si pentru Apartament. Eu stiu ca sintaxa in SQL ar fi: SELECT * FROM CAMERE WHERE DenTipCamere = 'Double' (e corecta ?) Imi puteti spune cum fac acest lucru? Va multumesc mult de tot! |
#2
Posted 22 March 2007 - 22:40
la datasourceid-ul de la gridview ii setezi in select parameters un controlparameter cu controlid-ul dropdownlistului (vezi ca pe web nu exista combo ci doar dropdown )
ar trebui sa iti iasa ceva in genul liniei de cod de mai jos ... daca vrei sa folosesti id-ul camerei si nu denumirea atunci pui DefaultValue = 0 si Type = "Int32" ... <SelectParameters> <asp:ControlParameter ControlID="ddlMyList" DefaultValue="" Name="room_type" PropertyName="SelectedValue" Type="String" /> </SelectParameters> Edited by teddycarebears, 22 March 2007 - 22:40. |
#3
Posted 22 March 2007 - 23:36
imi pare rau, dar nu gasesc nicaieri "controlparameter ". Am atasat Proiectul . Daca ai timp sa te uiti sa vezi care e treaba, ti-as fi recunoscator.
Multumesc! PS: sunt incepator in VB Attached Files |
#4
Posted 23 March 2007 - 08:44
scuze ... am avut impresia tot timpul ca vorbesti de asp .net si de un dataset simplu care se facea super usor din aspx ... mai jos gasesti un exemplu pt asp .net si bo care il poti adapta super usor pentru ce ai tu ...
http://www.asp.net/l...b.aspx?tabid=63 |
#5
Posted 24 March 2007 - 23:34
Corectie> de fapt doresti o FILTRARE si nu o SORTARE. Sunt termeni complet diferiti.
Solutie: - creezi un view parametrizat in sqlexpress (parametrul este elementul pentru filtrare) - populezi cun combobox cu elementele pe care le doresti pentru filtrare - creezi gridul asa cum ai facut initial din tabela CAMERE, dar nu din tabela, ci din view Ti-a pus fill-ul la Form_Load; vei face o subrutina separata numai cu fill pentru grid, pe care o parametrizezi cu elementul de filtrat. La evenimentul cobmobox_selectedindexchanged apelezi subrutina de mai sus si-i pasezi parametrul. Solutia asta e aproximativ simpla, dar cere ceva experienta de lucru cu sql. Daca nu te descurci, mergi pe varianta clasica: Subrutina de populare grid este ceva de genul Dim ds As New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT filed1, field2 FROM CAMERE WHERE CodTipCamera = '" & parametru_preluat_din_combo & "'", string_conexiune) da.Fill(dsMessages, "Data") nume_datagrid.DataSource = ds.Tables("Data").DefaultView |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users