Det är så att jag håller på att göra ett databasbaserat kundregister. Jag använder mig utav access som databas då det hela ska inte vara för så stort företag. Varje person borde ha ett unikt id så att man kan ha två Nils Nilsson och få olika kundinfo om denne. Hej Johan och tack för ditt svar! Du måste se till att du tillsammans med namnet får fram ett unikt id från access. Jag ser att jag kommer att ha användning av ditt tips. Tjena Kaj! Hej Robin! Jag vore verkligen grymt tacksam om någon kunde hjälpa mig i detta. Jag vet att detta är på amatörnivå men jag vill verkligen lära mig.Jag behöver lite hjälp.
I mitt index formulär vill jag att alla kunders för- och efternamn skall hämtas. Där du sedan skall kunna klicka på kundnamn som gör att nytt windows formulär kommer upp med all hämtad data från just denne kund.
Jag har kommit så långt att jag fått för- och efternamn hämtade från databasen till en combobox. Den kundmedlemmen som blir markerad visas nu i en linklabel vid sidan om comboboxen.
Vid detta stadium står det helt stilla i skallen. Jag vet inte hur jag ska rent tekniskt på bästa sätt överföra den markerade kund/databaskolumnen till ett nytt formulär med allt innehåll i just den kolumnen, då jag klickar på kundens namn?
Jag har gjort det så här med en linklabel vid sidan om just för att få att-klicka-på-namn möjlighet, finns det andra lösningar på det?
Observera att jag är amatör och nybörjare, vill dock jättegärna lära mig.
Mvh
KajSv: Jag behöver lite hjälp.
Min combo skulle jag fylla med:
<code>
public class ComboItem
{
string display = "";
string data = "";
public ComboItem(string display, string data)
{
this.display = display;
this.data = data;
}
public override string ToString()
{
return display;
}
public string Data
{
get
{
return data;
}
}
}
</code>
loopa och sätt in:
combobox.Items.Add(new ComboItem(namnarray[i], idarray[i]));
När du sedan ska öppna en ny dialogruta med info,ska ett formulär som tar en sträng in och kör detta på eventet då en ny ruta ska öppnas:
<code>
if (comboBox1.SelectedItem != null)
{
Personform p = new PersonForm(((ComboItem)comboBox1.SelectedItem).Data);
p.ShowDialog();
}
</code>Sv:Jag behöver lite hjälp.
Jag har svårt att veta vad du menar med:
"combobox.Items.Add(new ComboItem(namnarray[i], idarray[i]));"
Vad ska jag skriva istället för namnarray och idarray. Jag förmodar att det är Namnet på peronerna i database och dess id. Jag har dock svårt att veta var och hur jag lägger in databaskopplingarna i detta?
Som jag sade, jag är nybörjare *ler*
Mvh
KajSv: Jag behöver lite hjälp.
På något sätt fyller du ju din combo tidigare. Det är detta som ska in på namn. på idarray ska du in med detta unika id från databasen. Ok?
[edit] Visa annars hur din loop för att fylla din combo tidigare ser ut så är det enklare att hjälpa [/edit]Sv:Jag behöver lite hjälp.
Det jag gör nu är att jag surfar runt efter sidor om ADO.NET för att lära mig kodandet i koppling till databas. Jag börjar kunna någorlunda väl att få kopplingar och SQL-satser till mina databaser via menyerna på visual studio 2005 som jag använder som utveckligsverktyg. Jag känner dock att jag måste nu lära mig grunden i kodandet i ADO.NET, för annars märker jag att jag är väldigt begränsad.
Har du nått tips om bra sida för att lära sig det?
Tack i alla fall för din hjälp!Sv: Jag behöver lite hjälp.
Läget i Thailand?
Jag antar att du fyller din combobox på det sättet Anders visade oss på skolan, det enklaste sättet som jag ser det är att du bara skapar en till textfält som du koppar till id-kolumnen för varje användaren. När sedan användaren klickar på ett namn så öppnar du ett nytt formulär och skickar med id-nummret och hämtar personen i databasen med det id-nr och visar upp detta.
Jag håller själv på och kollar lite på ADO.NET och jag köpte boken ADO.NET 2.0 Step by Step av Rebecca M. Riordan som jag tycker är väldigt bra, kanske lite svårt att få tag på den där nere!? ISBN är iaf: 0-7356-2164-0.
Om det inte löser sig så finns jag på MSN, hör av dig!Sv:Jag behöver lite hjälp.
Jo, Thailand är helt underbart. Dessa tre månader har dock för snabbt, åker hem om två veckor. Ja, ja, jag kommer att åka tillbaka så fort jag får tillfället.
Allt med att streama ut både id-nummer tillsammans med namn från databasen till en listbox ät nu klart så att det fungerar. Jag får dock inte linklaben, som jag har använt till att skriva ut mina namn i, att fungera som en linklabel. Med andra ord när jag startar formuläret så funkar det inte som länk, som i mitt fall ska vara poängen. Så här har jag gjort loopen:
while (dataReader.Read())
{
int FriendNumber = dataReader.GetInt32(0);
string FirstName = dataReader.GetString(1);
Label id = new Label();
id.Text = FriendNumber.ToString();
LinkLabel FirName = new LinkLabel();
FirName.Text = FirstName;
listBox1.Items.Insert(0, id.Text + " " + FirName.Text);
}
Jag terrar nog dig på msn nu när du vaknar. Det är ju lunch här i Thai landet medan det är morgon hos er ;)
Sv: Jag behöver lite hjälp.
Jag vet inte om det blir något jag missar när jag gör en linklabel rent kodmässigt mot om jag skapar en link i layout-läge i Visual Studio?
Jag har skrivit en koppling + SQL-sats till min databas, även den rent kodmässigt, och fått den att fungera. Dock så stannar mina kunskapar när jag ska sedan synka ihop det med exempelvis en combobox. Alltså få SQL-satsen att visas i comboboxen.
Jag försöker att läsa i Visual Studios dokumentation (F1), De ända exempel de verkar ge där är baserad på att jag har gjort ett dataset i designläge, vilket jag har som sagt inte gjort.
Om jag har gjort en databasuppkoppling och fått den att fungera och en sql-sats och fått den att fungera, så tycker jag att det borde väl inta vara så attans svårt att få ut det i en combox.
Men som sagt jag är en amatörSv: Jag behöver lite hjälp.
while (dataReader.Read())
{
int FriendNumber = dataReader.GetInt32(0);
string FirstName = dataReader.GetString(1);
Label id = new Label();
id.Text = FriendNumber.ToString();
LinkLabel FirName = new LinkLabel();
FirName.Text = FirstName;
//Lägg till detta
FirName.Tag = FriendNumber.ToString();
listBox1.Items.Insert(0, id.Text + " " + FirName.Text);
}
För fomuläret där du ska visa upp personen så i konstruktorn så lägger du till att den ska ta emot en sträng och sedan skapar du en lokal (privat) variabel som får värdet av den sträng som formuläret tar emot. I formuläret sedan kan du använda den lokala variabeln till att hämta personen med det id-nummret. Du kan behöva göra om strängen till en int eller liknande.
Sen när du ska visa formuläret så skickar du med: FirName.Tag.ToString();
Typ så här:
//Om ditt formulär heter något annat än showPerson byt ut namnet
Form visaPerson = new showPerson(FirName.Tag.ToString())
visaPerson.Show();
Självklart behöver du inte göra om id-nummret till en sträng går bra att skicka en int till ett annat formulär också.