Avatar billede ladefoged Nybegynder
05. juni 2008 - 21:38 Der er 11 kommentarer og
1 løsning

Gemning af double i mssql database

Jeg har hvar jeg selv vil kalde et underligt problem, men er nu nok fordi jeg er helt grøn hvad angår C# kodning, så der er nok et eller andet jeg har overset.

Jeg har følgende kode som ikke virker:
[kode]
SqlConnection sqlConn  = new SqlConnection(Properties.Settings.Default.DatabaseForbinedelse);
SqlCommand sqlComm      = new SqlCommand();

double temperatureValue = 20.40;

try
{
    sqlConn.Open();
    sqlComm.Connection = sqlConn;
   
    sqlComm.CommandText = "UPDATE temperature SET currentTemperatur = '" + temperatureValue + "' WHERE temperatureId = '" + temperaturId + "'";
   
    sqlComm.ExecuteNonQuery();
}

finally
{

}
[/kode]

Denne kode giver følgende fejlbeskrivelse:
Error converting data type varchar to numeric.

Hvad kan det skyldes?
Avatar billede erikjacobsen Ekspert
05. juni 2008 - 21:43 #1
Måske fordi der står et komma, og ikke et punktum i værdien. Men det er ligemeget, for den slags kode bruger man ikke mere. Du skal bruge parameters til din SQL-sætning.
Avatar billede ladefoged Nybegynder
05. juni 2008 - 21:46 #2
Okay har du noget information/et link til noget forklaring omkring brugen af parameters.
Avatar billede ladefoged Nybegynder
05. juni 2008 - 21:48 #3
Du må også gerne smide et svar da du jo egentlig har svaret mig på mit spørgsmål :)
Avatar billede arne_v Ekspert
05. juni 2008 - 21:49 #4
Jep.

Og saa skal der ikke '' omkring tal.
Avatar billede ladefoged Nybegynder
05. juni 2008 - 21:54 #5
Sådan det var sørme ikke så svært :)

Her er lige den nye kode som virker:

[kode]
SqlConnection sqlConn  = new SqlConnection(Properties.Settings.Default.DatabaseForbinedelse);
SqlCommand sqlComm      = new SqlCommand();

double temperatureValue = 20.40;

try
{
    sqlConn.Open();
    sqlComm.Connection = sqlConn;
   
    sqlComm.CommandText = "UPDATE temperature SET currentTemperatur = @pa_temperatureValue WHERE temperatureId = '" + temperaturId + "'";

    sqlComm.Parameters.Add(new SqlParameter("@pa_temperatureValue", temperatureValue));

    sqlComm.ExecuteNonQuery();
}

finally
{

}
[/kode]

Og mange tak for hjælpen
Avatar billede erikjacobsen Ekspert
05. juni 2008 - 21:54 #6
Avatar billede erikjacobsen Ekspert
05. juni 2008 - 21:54 #7
Ja, lige præcis ;)  - og jeg samler slet ikke på point, tak.
Avatar billede arne_v Ekspert
05. juni 2008 - 21:55 #8
Avatar billede erikjacobsen Ekspert
05. juni 2008 - 21:55 #9
Hovsa - og så skal du lige gøre det også for temperaturId!
Avatar billede ladefoged Nybegynder
05. juni 2008 - 21:58 #10
Ahh min fejl, den retter jeg lige til :)

Og takker for linkende.

Jamen skal jeg så bare selv tage pointene eller hvordan får vi lukket den her :)
Avatar billede erikjacobsen Ekspert
05. juni 2008 - 22:03 #11
Du har to muligheder
1) Svare selv, acceptere dit eget svar.
2) Be' arne_v om svar
3) Ikke foretage dig yderligere ("lovligt" efter reglerne, men ildeset *g*)
Avatar billede ladefoged Nybegynder
05. juni 2008 - 22:37 #12
Så lukker jeg den selv, da du (erikjacobsen) ikke vil have point og smed den føste kommentar som gav mig løsningen.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester