HVordan dælen kan jeg lave min i query så den indsætter hvis der ikke er en forekomst af det jeg vil indsætte.
Com.CommandText = "select count(*) as antal FROM id WHERE flop = randoms" ; if (antal == 0) { Com.CommandText = "INSERT INTO id (flop) VALUES (?Navn)"; } else { }
som i kan se har ejg prøvet at anvende ANTAL som en variabel. men den går ikke ( jeg skriver mit program i c# )
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvor tit regner du med at duplikat vil forekomme ?
Hvis sjældent så bare sæt et unikt index på det felt der ikke må være duplikate værdier i (primær nøgle har allerede et unikt index) og catch den exception du får ved duplikat.
using(MySqlConnection con = new MySqlConnection(constr)) { MySqlCommand sel = new MySqlCommand("SELECT COUNT(*) FROM id WHERE flop = ?flop", con); sel.Parameters.Add("?flop", MySqlDbType.VarChhar, 50); sel.Parameters["?flop"].Value = flopval; int antal = (int)sel.ExecuteScalar(); if(antal > 0) { MySqlCommand ins = new MySqlCommand("INSERT INTO id (flop) VALUES(?flop)", con); sel.Parameters.Add("?flop", MySqlDbType.VarChhar, 50); sel.Parameters["?flop"].Value = flopval; sel.ExecuteNonQuery(); } }
ikke tit så det er vel en accceptabel løsning :) men hvordan kan jeg tælle mine poster og smide det antal i en variabel som c# forstår og jeg kan bruge i mit program ?
det lader ikke til man kan select count(*) as ANTAL
og bruge antal som ariabel senere i noget som ikke har med sql sætninger at gøre.
En command har 3 forskellige slags execute metoder:
.ExecuteReader som returnerer en reader .ExecuteScalar som returnerer en enkelt værdi (en enkelt række og en enkelt kolonne) .ExecuteNonQuery som ikke returnerer noget (bruges til INSERT, UPDATE etc.)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.