Avatar billede anders159 Nybegynder
17. oktober 2005 - 14:52 Der er 6 kommentarer og
1 løsning

STORE DateTime problemer

Hej der..

Ja så må jeg gi op, er nok for dum til dette C# gylle, men prøver lige en sidste gang.

Jeg sidder med en forspørgelse til en DB og min kode brækker sig for vildt. Problemet er at jeg har et datetime object som er skabt af C# i formatet(mm-dd-yyyy), min database vil dog have (dd-mm-yyyy).
Jeg har prøvet alt hvad jeg kunne finde eksempler på ude på nette. bla SqlCommand, med parameter angivelse og hele badulen, det ender dog altid med samme fejlbeskrivelse-->
""System.Data.SqlClient.SqlException: Error converting data type varchar to smalldatetime.""

jeg er ved at gå fuldstændig kold, da jeg nu har brugt 5 timer på dette latterlige problem... Hvis C# er så cool som folk siger det er, burde der da være en simpel måde at komme rundt om dette problem på..uden at skulle til at lave en manuel strenghåndtering.

Håber VIRKELIG nogen kan hjælpe :)
Avatar billede arne_v Ekspert
17. oktober 2005 - 14:57 #1
ja - den simple og cool løsning er parameters !
Avatar billede anders159 Nybegynder
17. oktober 2005 - 15:08 #2
hej arne...har jeg prøvet, tror endda det var dit eksemple jeg så på;), men det virker ikke. Da jeg kiggede eksemplet igennem var der også en metode jeg ikke kunne fine. Tror du burgte metoden -->  sqlCommand.Parameters.Add("@a",SqlDbType.DateTime);
Sidder dog med Betaversionen af MS-studio og ved ikke om det er blevet taget af denne udgave. Hos mig kan jeg finde en der hedder "sqlComand.Parameters.AddWithValue"
og det ser ud til at den acceptere det.

du kan prøve lige at kigge kort herunder, håber det er en indlysende fejl, jeg bare ikke kan se...
---------------------------------------
    DateTime dt = DateTime.Today.AddDays(-2);

    SqlCommand sqlCom = new SqlCommand("exec MonitorData 4003,'@a',1", myConn);//
    sqlCom.Parameters.AddWithValue("@a",SqlDbType.DateTime);
    sqlCom.Parameters["@a"].Value = dt; 

    SqlDataReader myReader = sqlCom.ExecuteReader();   
-----------------------------------------------------------------------
ender somsagt altid med denne fejl-->
Error converting data type varchar to smalldatetime.
Avatar billede arne_v Ekspert
17. oktober 2005 - 15:12 #3
jeg tror at tingene kompliceres af at du kalder en store procedure og ikke
laver en normal SELECT eller INSERT
Avatar billede arne_v Ekspert
17. oktober 2005 - 15:12 #4
gæt:

SqlCommand sqlCom = new SqlCommand("exec MonitorData 4003,'@a',1", myConn);

skal være

SqlCommand sqlCom = new SqlCommand("exec MonitorData 4003,@a,1", myConn);
Avatar billede anders159 Nybegynder
17. oktober 2005 - 15:21 #5
hej der..Tror jeg fik den :)

    SqlCommand sqlCom = new SqlCommand("MonitorData", myConn);//
    sqlCom.CommandType = CommandType.StoredProcedure;

pg så er det ellers bare at fylde parametere på, men med den forudsætning at de selvfølgelig hedder det de gør i sp'en.

Om du tror det eller, hjælp din sparring :).
Så hvis du vil, så smid et svar og jeg smider points retur.

Anders
Avatar billede arne_v Ekspert
17. oktober 2005 - 15:23 #6
ok

(selvom jeg nu var et stykke vej fra løsningen)
Avatar billede anders159 Nybegynder
17. oktober 2005 - 15:45 #7
hehe, men tæt nok på til at det begyndte at lugte lidt af fiske ;)
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