Databas i C# entity , öka en kolumm med 1

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

Databas i C# entity , öka en kolumm med 1

Hej!

Jo , det är så att jag är ganska ny på c# och har kommit till databaser.

Jag har en databas som är med entity.

Det jag vill ha är att varje gång man trycker på en knapp (clickButton) så skall kolummen clicks öka med +1 hela tiden på en specifik "person".
Alltså, jag trycker på knappen 10 gånger, i databasen har kolummen clicks då ökat till 10 , jag trycker 15 gånger till och den har ökat till 25.
Jag förstår verkligen inte hur jag ska få den att göra det?
Namnet på databasen är ClickingGame och tabellen heter customers

Min databas ser ut såhär:

customers id - int name - varchar(50) nick - varchar(50) clicks - bigint Diamonds - int

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Registrerad
Mar 2016

@dallan87:

Om du syftar på EntityFramework skulle jag rekommendera att försöka komma ifrån tänket med hur din databas och dina tabeller ser ut, fokusera istället på hur dina Entities ser ut. Det sköna med EntityFramework är ju att slippa skriva SQL.

Har du kommit så långt att du kan skriva och läsa från databasen?
Gör du detta via ett "Context" och har du skapat ett DbSet för entityn Customer?

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@huff:

Har så jag kan läsa från databasen, med tex:

private void showUserName() { ClickerGameEntities1 db = new ClickerGameEntities1(); var result = db.customers .SingleOrDefault(c => c.nick == "dallan87"); namelabel.Text = result.name; }

Ska senare ändra så den läser från id men just nu så är det från nicket den läser.

Det funkar ju , men det är sen att uppdatera kolummen clicks med en knapp jag inte förstår redigt.

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Registrerad
Mar 2016

@dallan87:

Du får ju ut en customer i ditt result.
En customer har en property clicks.

result.clicks++; db.SaveChanges();

Klart!

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@huff:

trodde nästan det skulle vara så enkelt!
suttit i säkert 1,5 timme och bara provat mig fram

Tack så hemskt mycket!

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@huff:

Dock verkar det vara ett problem, nu vet jag inte hur det funkar när det är utvecklarverision av sql.

Jag la till en "räknare" som läser från kolummen clicks och den uppdateras som den ska.

Däremot, när jag stänger ner programmet och tittar i databasen, så har den inte uppdaterats?

Gör den inte det eller är det något annat fel jag gjort?

koden ser ut såhär nu:

ClickerGameEntities1 db = new ClickerGameEntities1(); var result = db.customers .SingleOrDefault(c => c.nick == "dallan87"); result.clicks = result.clicks + 1; db.SaveChanges(); clicksdblabel.Text = result.clicks.ToString();

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Registrerad
Mar 2016

@dallan87:

Du körde db.SaveChanges()?

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@huff:

redigerade inlägget, kolla igen

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Registrerad
Mar 2016

@dallan87:
Svårt att säga vad det beror på utan att se mer av koden tyvärr.. Speciellt ClickerGameEntities1.

Viktigt att tänka på också gällande EntityFramework är att din "räknare" som du gör, kollar inte kolumnen i databasen utan properyn på ditt objekt.

Trädvy Permalänk
Medlem
Registrerad
Aug 2015

@dallan87:

Testa med att lägg till följande innan db.SaveChanges();

db.customers.Attach(result);
db.Entry(result).State = EntityState.Modified;