Koppla ihop en klass med button för att få ut värde.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016

Koppla ihop en klass med button för att få ut värde.

Försöker att få ut och koppla ihop värde från en klass till en button för att kunna "läsa ut som textfil"
men får felmeddelande när jag "kopplar in klassen i button", det gick förut men ändrade något och har ingen aning vad jag gjorde.

Kod:

namespace projektnamn public partial class med : Form { private void button1_Click(object sender, EventArgs e) { fildata data = new fildata(); //Får felmeddelande här på "new fildata(); " data.Namn = TextBox1.Text; //data.efternamn och email med textbox2 och 3. StreamWriter write = new StreamWriter("info.txt"); write.WriteLine(data.Namn, ", " , data.Efternamn, ", " , data.Email); write.Close(); } class fildata { public fildata(string namn, string efternamn, string email, ) { this.Namn = namn; this.Efternamn = efternamn; this.Email = email; } public string Namn { get; set; } public string Efternamn { get; set; } public string Email { get; set; } } }

Synd att det inte finns en "samlingstråd för små frågor" onödigt att göra en ny tråd varje gång :/

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Sep 2012

Din klass "fildata" har en konstruktor med tre olika parametrar, däribland "string namn", "string efternamn" och "string email".

public fildata(string namn, string efternamn, string email, )

Om du vill skapa ett objekt av denna klass så måste du fylla i något. Ett exempel är:

fildata data = new fildata("anders", "andersson", "anders@andersson.se");

Om du inte vill använda dig utav detta så är det bara att göra en till konstruktor i din klass som inte har några angivna parametrar i sig.

Observera också att parametern "string email" har ett kommatecken efter sig, vilket troligtvis ger dig ett error.

CASE: Phantek Enthoo Luxe | MOBO: MSI Krait Z170 | CPU: Intel i7 6700k | RAM: Corsair Vengeance 16GB DDR4 | COOLING: H110i GT | PSU: EVGA Supernova G2 850W | GPU: GTX 780Ti 2x REF |

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016
Skrivet av Warcaith:

Din klass "fildata" har en konstruktor med tre olika parametrar, däribland "string namn", "string efternamn" och "string email".

public fildata(string namn, string efternamn, string email, )

Om du vill skapa ett objekt av denna klass så måste du fylla i något. Ett exempel är:

fildata data = new fildata("anders", "andersson", "anders@andersson.se");

Om du inte vill använda dig utav detta så är det bara att göra en till konstruktor i din klass som inte har några angivna parametrar i sig.

Observera också att parametern "string email" har ett kommatecken efter sig, vilket troligtvis ger dig ett error.

Ska pröva det du angav.
Inget fel där, tog bort onödig information bara, finns en hel del utan "string namn, email och efternamn"
Edit:
Kommer använda mig av information från min databas som kommer stå utskriven i de olika "textboxarna" genom att man klickar på en button med angivet värde.

Går det text att ha så här:

fildata data = new fildata(namnTextBox.Text, efternamnTextBox.Text, emailTextBox.Text);

kommer det att fungera?

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Sep 2012
Skrivet av LadyKurczak:

Ska pröva det du angav.
Inget fel där, tog bort onödig information bara, finns en hel del utan "string namn, email och efternamn"
Edit:
Kommer använda mig av information från min databas som kommer stå utskriven i de olika "textboxarna" genom att man klickar på en button med angivet värde.

Går det text att ha så här:

fildata data = new fildata(namnTextBox.Text, efternamnTextBox.Text, emailTextBox.Text);

kommer det att fungera?

Förstår ej riktigt vad du ska använda klassen fildata till, men ja, den text som står i dina textboxes innan du skapar objektet kommer sättas in i dina variabler "string Namn", "string Efternamn" och "string Email" som du har i klassen "fildata".

CASE: Phantek Enthoo Luxe | MOBO: MSI Krait Z170 | CPU: Intel i7 6700k | RAM: Corsair Vengeance 16GB DDR4 | COOLING: H110i GT | PSU: EVGA Supernova G2 850W | GPU: GTX 780Ti 2x REF |

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016
Skrivet av Warcaith:

Förstår ej riktigt vad du ska använda klassen fildata till, men ja, den text som står i dina textboxes innan du skapar objektet kommer sättas in i dina variabler "string Namn", "string Efternamn" och "string Email" som du har i klassen "fildata".

Jag får det att fungera med värdet som användaren sätter i (den sparas i textfilen) dock får jag inte in de andra värdena i textfilen, är det för att de är förbestämda och skriv ut automatiskt? --->> Eftersom det är bara "siffran" som användaren skriver in som skrivs ut.

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Mar 2011
Skrivet av LadyKurczak:

Jag får det att fungera med värdet som användaren sätter i (den sparas i textfilen) dock får jag inte in de andra värdena i textfilen, är det för att de är förbestämda och skriv ut automatiskt? --->> Eftersom det är bara "siffran" som användaren skriver in som skrivs ut.

Det är lite kryptiskt att förstå vad du vill ha ut med tråden.

Korrekta deklarationer?
Lägga till en ny rad i textfilen varje gång en användare klickar på en knapp?
Skriva ut namn, efternamn och email som en textrad?

Sen skriver du "siffran" när det som efterfrågas är strängar (text) _string_ namn, efternamn, email. Vad menar du?

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

Vill du att filen ska fungera typ som en databas där du sparar ner serialiserade "fildata"-objekt?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016
Skrivet av debben:

Det är lite kryptiskt att förstå vad du vill ha ut med tråden.

Korrekta deklarationer?
Lägga till en ny rad i textfilen varje gång en användare klickar på en knapp?
Skriva ut namn, efternamn och email som en textrad?

Sen skriver du "siffran" när det som efterfrågas är strängar (text) _string_ namn, efternamn, email. Vad menar du?

1. Siffran skriver man i för att få upp all information som finns om "siffran"/Id som det kallas, om personen i databasen.

2. Det är bara siffran som sparas till textfil när jag väljer "Spara till textfil", min fråga är då, är det för att användaren själv skriver in "Siffran/Id" och inte all annan information som gör att informationen inte sparas som textfil?
Känns som jag ändå tänker rätt i koden om någon information sparas.

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016
Skrivet av sickhouse:

Vill du att filen ska fungera typ som en databas där du sparar ner serialiserade "fildata"-objekt?

Har redan databasen deklarerad i en annan metod, nu gäller det att få ut all information från den metoden. Får bara upp det användaren matat in själv och inte det som är "Förutbestämt beroende på vilken siffra som användaren skriver in (om denna existerar förstås)".

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016

Okej, så jag har prövat mig fram. Problemet är att den bara snappar upp det ena värdet. Om jag tar bort "namn" så sparas enbart efternamnet (som står efter namn), så får väl försöka med arrays/lista eller liknande.

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Bästkusten
Registrerad
Jun 2009

Tips för framtiden är att följa namnschemat för namngivning av klasser och variabler, och att hålla sig till engelska om möjligt.
Klassnamn ska alltså börja med stor bokstav så man lätt kan se att det är en klass, variablers namn brukar börja med liten bokstav och följa camelcase:
https://en.wikipedia.org/wiki/Camel_case

|| Intel 8700K || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & OCZ Agility 3 120GB & Samsung 960 EVO 250GB & Crucial V4 256GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Mar 2011
Skrivet av LadyKurczak:

1. Siffran skriver man i för att få upp all information som finns om "siffran"/Id som det kallas, om personen i databasen.

2. Det är bara siffran som sparas till textfil när jag väljer "Spara till textfil", min fråga är då, är det för att användaren själv skriver in "Siffran/Id" och inte all annan information som gör att informationen inte sparas som textfil?
Känns som jag ändå tänker rätt i koden om någon information sparas.

1. Du har alltså en funktion som hämtar information (och fyller) angivna textboxar, TextBox1, TextBox2 och TextBox3?

2. Varför skulle en siffra sparas till textfilen när du har definierat upp att namn, efternamn och email ska skrivas?
Det känns som att du har designat fel på vägen. Eller så är jag dum i huvudet, eller så formulerar du dig klurigt.

Följande:

namespace ProjektNamn public partial class Med : Form { private void button1_Click(object sender, EventArgs e) { Fildata data = new Fildata(TextBox1.Text, TextBox2.Text, TextBox3.Text); using(StreamWriter writer = new StreamWriter("info.txt")) { writer.WriteLine(string.Format("Namn: {0}, Efternamn: {1}, Email: {2}", data.Namn, data.Efternamn, data.Email)); }; } public class Fildata { public string Namn { get; set; } public string Efternamn { get; set; } public string Email { get; set; } public Fildata(string namn, string efternamn, string email) { this.Namn = namn; this.Efternamn = efternamn; this.Email = email; } } }

Kommer skriva den data som användaren har angett i TextBox.Text1, TextBox.Text2 och TextBox.Text3 till texfilen info.txt.

Om du inte har bundit dessa tre textboxar mot någon data från databasen kommer den aldrig skriva ut det i textfilen.
Tog även tillfället i akt att wrappa din StreamWriter i ett using-block (implicit try, catch, finally) som tar hand om hanteringen av StreamWriter-kontextet. Annars bör du göra detta själv.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016
Skrivet av debben:

1. Du har alltså en funktion som hämtar information (och fyller) angivna textboxar, TextBox1, TextBox2 och TextBox3?

2. Varför skulle en siffra sparas till textfilen när du har definierat upp att namn, efternamn och email ska skrivas?
Det känns som att du har designat fel på vägen. Eller så är jag dum i huvudet, eller så formulerar du dig klurigt.

Följande:

namespace ProjektNamn public partial class Med : Form { private void button1_Click(object sender, EventArgs e) { Fildata data = new Fildata(TextBox1.Text, TextBox2.Text, TextBox3.Text); using(StreamWriter writer = new StreamWriter("info.txt")) { writer.WriteLine(string.Format("Namn: {0}, Efternamn: {1}, Email: {2}", data.Namn, data.Efternamn, data.Email)); }; } public class Fildata { public string Namn { get; set; } public string Efternamn { get; set; } public string Email { get; set; } public Fildata(string namn, string efternamn, string email) { this.Namn = namn; this.Efternamn = efternamn; this.Email = email; } } }

Kommer skriva den data som användaren har angett i TextBox.Text1, TextBox.Text2 och TextBox.Text3 till texfilen info.txt.

Om du inte har bundit dessa tre textboxar mot någon data från databasen kommer den aldrig skriva ut det i textfilen.
Tog även tillfället i akt att wrappa din StreamWriter i ett using-block (implicit try, catch, finally) som tar hand om hanteringen av StreamWriter-kontextet. Annars bör du göra detta själv.

Har fixat det i lista så det går utmärkt. Användaren ger bara ett värde eftersom det finns databas med all information som redan är skriven. Jag försöker göra hela min stora kod med try catch men den krånglar lite.

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2016

LÖST

Define R4 | i5 4460k | ASUS Z97 | 8GB Corsair | Nvidia GeForce GTX960 | Samsung SSD 840 EVO 250GB | Dota2