Laden...

Erstellung eines Lookup-Fields

Erstellt von matze2k2 vor 13 Jahren Letzter Beitrag vor 13 Jahren 827 Views
Thema geschlossen
M
matze2k2 Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren
Erstellung eines Lookup-Fields

Hallo zusammen,

ich habe eine kurze Frage, evtl. kann mir jmd. weiterhelfen. Ich habe ein Feld, wenn in dieses Feld ein Wert eingetragen wird, dann soll in der Datenbank nach dem Account gesucht werden und das Objekt zurück gegeben werden. Ich dachte mir nun, dass ich das einfach über LINQ lösen kann, aber dies scheint nicht zu funktionieren. C# gibt mir das Folgende zurück. Gehe ich hier völlig falsch ran? Kann mir jmd. Hinweise geben? Bin über jeden Hilfshinweis froh, links, tipps, alles super. Nonplus ultra wäre noch wenn ich mir n Formular öffnen kann, in welchem
ich meine Objekte anzeige, sofern mehr eine Menge > 1 herauskommt, aber das
bekomme ich dann noch raus.

Cannot implicitly convert type 'BasicData.Accounts.ACCT' to 'DataEntry.Receipts.ACCT'


            if (aCCT_IDTextBox.Text != "")
            {
                var selectedAccount = from accounts in ad.ACCTs
                                      where accounts.Main_Account.Contains(aCCT_IDTextBox.Text)
                                      select accounts;

                if (selectedAccount.Count() == 0)
                {
                    MessageBox.Show("Could not find account! Is it a sub account?");                    
                }
                else if (selectedAccount.Count() == 1)
                {
                    ACCT lookedupAccount = selectedAccount.First();
                }
                else
                {
                    MessageBox.Show("Found too many accounts. Please specify your search criteria!");                
                }
            }

Viele Grüße
Mathias

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

schau dir mal die Erweiterungsmethode ToLookup an.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

795 Beiträge seit 2006
vor 13 Jahren

Ich nehme an, dass das Problem in dieser Zeile auftritt?

ACCT lookedupAccount = selectedAccount.First();

Dann ist doch klar, was die Fehlermeldung Cannot implicitly convert type 'BasicData.Accounts.ACCT' to 'DataEntry.Receipts.ACCT' bedeutet.

Nämlich dass der Account, der in selectedAccount steht ein BasicData.Accounts.ACCTist, du ihn aber in einen DataEntry.Receipts.ACCT umwandeln willst. das geht offensichtlich nicht.

Gruß, Christian.

P.S.: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
M
matze2k2 Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Hi zusammen,

vielen Dank. Werde ich mir mal anschauen.

Gruß

M
matze2k2 Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

das klappt super,

vielen Dank schon einmal für die Hilfe. Klappt super, muss man erst einmal wissen..

Wie auch immer. Ich habe bereits im linq-teil die where-bedingung eingebaut, damit das sql-schneller ist. Nun habe ich, wie du siehst, eine or anweisung, da ich nach dem einen oder anderen suchen möchte. Wie kann ich das mit dem lookup lösen?

Oder muss ich dann doch etwas anderes anwenden?


                var selectedAccount = from accounts in ad.ACCTs
                                      where accounts.Main_Account.Contains(aCCT_IDTextBox.Text) || accounts.ACCT_ID.Equals(Convert.ToInt32(aCCT_IDTextBox.Text))
                                      select accounts;

                var lookup = selectedAccount.ToLookup(item => item.Main_Account);

Gruß
Mathias

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

das || im where hat mit dem ToLookup nix direkt zu tun. Was du in der Lookup-Tabelle haben willst musst du schon selbst wissen.

Sonst schau dir beim ToLookup die Überladungen an. Da gibts ein paar davon 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

458 Beiträge seit 2007
vor 13 Jahren

Baem! Crosspost.

be the hammer, not the nail!

Hinweis von MarsStein vor 13 Jahren

Wegen [Hinweis] Wie poste ich richtig? Punkt 2.2 ==> geschlossen

Thema geschlossen