Avatar billede limes_planum Praktikant
10. april 2012 - 23:15 Der er 10 kommentarer og
2 løsninger

WPF/SQL - Indsættelse af ny kolonneværdi i textfelt fra combobox-valgt-værdi

Jeg øsnker at indsætte en værdi fra kolonnen ProfilID i et tekstfelt når min combobox vælger en værdi.

Det var muligt at hente værdierne ind i comboboxen som en liste fra min ElevID-kolonne sådan her;

public Page1()
        {
       
            InitializeComponent();


          var db = new DataClasses1DataContext();
            comboBox3.ItemsSource = db.Elevs;
            comboBox3.DisplayMemberPath = "ProfilID";
            comboBox3.SelectedValuePath = "ElevID";

etc...

Men længere nede i min private combobox-valg-handler-metode er det et andet ball-game når jeg vil hente en værdi i en anden kolonne (i samme table dog);

            public void comboBox3_SelectionChanged(object sender, SelectionChangedEventArgs e)

            {
                int ob = Convert.ToInt32(comboBox3.SelectedIndex+1);// 1 til 10
comboBox3.DisplayMemberPath = "ProfilID"; // hvis 1 => 17, 2=11,
comboBox3.SelectedValuePath = "ElevID"; // hvis 1 => 1
               
Int32 value3 = Convert.ToInt32(comboBox3.DisplayMemberPath[ob]);
     
textBox15.Text = Convert.ToString(ob);
textBox16.Text = Convert.ToString(value3);
comboBox3.DisplayMemberPath = "Navn"; //linje der køres for at bibeholde navne i comboboxen

Int32 value4 = Convert.ToInt32(comboBox3.DisplayMemberPath[ob2]);
               
            }

- - -
Outputtet bliver nogle værdier der er langt større end mine ProfilID'er i min tabel + at når jeg vælger combobox-index over 8 (går fra 1 til 10) crasher programmet med at indeksets max er overgået :-/
Avatar billede Syska Mester
10. april 2012 - 23:31 #1
Jeg har ingen ide om hvad du har gang i ... Index er index plads og kan ikke direkte oversættes til dine ID'er.

comboBox3.DisplayMemberPath = "ProfilID"; // hvis 1 => 17, 2=11,
comboBox3.SelectedValuePath = "ElevID"; // hvis 1 => 1

Overstående forstår jeg ikke.

Int32 value3 = Convert.ToInt32(comboBox3.DisplayMemberPath[ob]);
string kan du index dig i ... dvs

string s = "limes";
så vil:
s[0] == l;
s[1] == i
s[2] == m

Altså du vil få char værdien.

I din kode laver du så den char værdi om til en int ... fuldt lovligt, men du får nok ikke det resultat du gerne vil have.

Jeg tror du skal have fat i:
comboBox3.SelectedValue eller comboBox3.SelectedItem ... den værdi kommer så fra den kolonne du har sat i:
comboBox3.SelectedValuePath = "ElevID";

Dvs ... du burde her så "ElevID" som din SelectedValue.

Håber det gav mening.
Avatar billede limes_planum Praktikant
11. april 2012 - 09:43 #2
Ok - fair nok... sidst havde jeg lidt grafik med og det fåes også nu (tror vi bør vente lidt med at se på C#-koden før DB-kode er udredt (forsøger personligt hårdt at lære C# og Java med endless tuts - mån håber jeg får overblikket en dag - så bear with me))

Her har du grafikken til det nye problem, hvor man øverst i venstre hjørne kan se et outputklip af xaml-filen (resten forklares deri):
http://www.preforce.dk/TD/Brows_outp_plus_DB_execute.jpg

PS: tror jeg er med på hvad der sker med den der opdeling af char-filen (hvilket slet ikke er min hensigt - hensigt er jo at outputte Profil-ID til Profil-txt-feltet som følge af combobox-valg)
Avatar billede Syska Mester
11. april 2012 - 12:30 #3
Du skal bruge en af de: http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_members(v=vs.85).aspx

Hvis du bruger SelectedItem bør du kunne gøre noget ala:

var elev = cbo.SelectedItem as Elev;
if(elev != null)
{
// Her kan du så arbejde videre med Elev ... sætte den textbox du snakker om.
}

mvh
Avatar billede limes_planum Praktikant
11. april 2012 - 13:00 #4
Ok, tak - skal på lidt forlænget wkd (og væk fra min stationær) - kigger på mandag :)) /vh
Avatar billede Syska Mester
11. april 2012 - 13:19 #5
roger.

Det skal jeg da ellers kalde en forlænget weekend. Du er klar over det kun er onsdag i dag :-)

mvh
Avatar billede limes_planum Praktikant
17. april 2012 - 12:15 #6
Heyy.. Buzz min ven :) - tilbage fra en forlænget wkd (der trods mit svar kl 13 den onsdag, egentlig først startede torsdag morgen, men lad det nu ligge så det ikke irriterer fremtidige læsere af tråden endnu mere .. hehe)

Jeg har kigget lidt på det nu, og fundet ud af at jeg har mistet det mere grundliggende overblik, på hvorfor jeg gør som jeg gør (for meget hovedløst prøven af, fra min side)

Dette underbygges af at jeg egentlig troede at jeg gennem de C#-tuts jeg havde kørt, havde klædt mig selv nok på (men så alligevel ikke)

I mellemtiden har jeg fået godkendt et MS 70-515-kursus, hvor jeg kommer right down this alley ænivæis..
Så vil også spørge denne kommende underviser (efter 30/4) til råds omkring problemstillingen (herunder forståelsen af control-selection, og hvordan man bruger det i forb. med MsSql)

Du vil selvfølgelig få point udfra hvor meget af dine forslag jeg kommer til at bruge i den endelige kodestump :)) /vh

(PS: cool med det lidt formelle/positive 'vh'-salutering - jeg har desværre mødt lidt for meget negativitet og disrespekt herinde før i tiden - så thumbs up.. )
Avatar billede Syska Mester
17. april 2012 - 12:43 #7
Hej,

Det kommer helt an på hvordan folk spørger og om de virkelig prøver. Tror mange er trætte af folk der tror det at programmere bare er at sætte lidt sammen og så har man bygget "Windows 12".

Learn'n'Read ... så kommer man videre.

Det hele kommer ikke på en weekend, baby steps.

mvh
Avatar billede limes_planum Praktikant
01. maj 2012 - 14:55 #8
:)) -> opdatering: er startet på kurset, og vender det med underviseren lidt mere i den kommende dage (men har allerede fået en tilkendegivelse på at han bør kunne løse problemet)
Avatar billede limes_planum Praktikant
08. maj 2012 - 11:36 #9
Har nu snakket med min underviser, og det hele er udmøntet i at vi begge er blevet ret enige om at WPF er lidt af et eksperiment for MS. Hvis der er nogle der bider på, vil formatet overleve.

Ellers påbegynder jeg nu at lave det hele om i Windows Forms med AJAX/og eller JQuery  (det platformsuafhængige aspekt tiltaler mig også da jeg jeg så vil forbedre mig med JQuery (hvilket er godt for min profil)).

Om jeg kommer til at bruge noget af det udvekslede kode herover er derfor tvivlsomt.

.. halvt point gives således, for det du har hjulpet med so far :)
Avatar billede Syska Mester
08. maj 2012 - 11:43 #10
Woot. Eksperiment? Hvem dælen siger det? Er det en joke?

WinForms dør ... det er helt sikkert. WPF er vector og overlever.

Er det kursus eller skole? Og hvis man må spørge, hvor henne?

WinForms med jQuery? Desktop og Web? Synes ikke det giver nogen mening.

mvh
Avatar billede arne_v Ekspert
09. maj 2012 - 04:24 #11
Jeg formoder at den underviser er det i fag som fransk, oldtidskunskab etc. og ikke noget med IT!

:-)

WPF blev releaset for 6 aar siden.

Windows 8 og .NET 4.5 som udkommer om et halvt aar vil have WPF.

Visual Studio er idag lavet i WPF.

SilverLigth, Windows Phone og Windows 8 Metro app bruger samme teknologi (XAML og API) som WPF.

WPF forsvinder ikke.
Avatar billede arne_v Ekspert
09. maj 2012 - 04:25 #12
Jeg tror dog heller ikke at Win Forms forsvinder.

Der er simpelthen skrevet for mange Win Forms apps til at det sker.

Win32 API GUI er jo ogsaa stadig supporteret selvom det jo maa naerme sig 20 aars jubilaeum.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester