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

Permalänk

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 :/

Visa signatur

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

Permalänk
Medlem

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.

Permalänk
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?

Visa signatur

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

Permalänk
Medlem
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".

Permalänk
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.

Visa signatur

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

Permalänk
Medlem
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?

Permalänk
Medlem

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

Permalänk
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.

Visa signatur

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

Permalänk
Skrivet av hultron:

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)".

Visa signatur

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

Permalänk

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.

Visa signatur

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

Permalänk
Keeper of Traditions

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

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || 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.

Permalänk
Medlem
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.

Permalänk
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.

Visa signatur

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

Permalänk

LÖST

Visa signatur

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