Avatar billede pumpin Nybegynder
20. februar 2006 - 17:12 Der er 14 kommentarer og
1 løsning

Probs med Date

hey eksperter.

jeg er ved at lave et lille modul hvor man kan oprette nogle stellings opslag og ud fra om deres ansøgningsfrist er overskredet så piller den dem så automatisk af.

så jeg har selvfølig lavet et felt af typen date i min mySQL og den forventer at date ser sådan her ud 2006-03-02

men når jeg trækker datoen ud fra min calendar så ser den sådan her ud 03-02-2006 og når jeg

er der en metode hvor man kan omgåes det ?
Avatar billede arne_v Ekspert
20. februar 2006 - 17:36 #1
parameters !

(se min artikel om samme)
Avatar billede arne_v Ekspert
20. februar 2006 - 17:48 #2
http://www.eksperten.dk/artikler/831

(og ja - MySQL har dem ogsaa !)
Avatar billede pumpin Nybegynder
21. februar 2006 - 00:13 #3
den siger at kommer med en fejl om at det felt i min DB ikke må inden holde null jeg har prøvet at indsætte faste værdier men det virker heller ikke.
protected void KnapOpret_Click(object sender, EventArgs e)
    {
MySqlConnection objConn = new MySqlConnection("server=XX; user id=XX; password=XX; database=XX; pooling=false;");
        string inserSQL = "INSERT INTO VH_STELLINGER (underOverskrift, overskrift, brodtekst, tiltradelse, modtager, ansogningsfrist) VALUES (@underoverskrift, @overskrift, @brodtekst, @tiltradelse, @modtager, @ansogningfrist)";
        objConn.Open();
        MySqlCommand objCmd = new MySqlCommand(inserSQL, objConn);

        objCmd.Parameters.Add("@underoverskrift", MySqlDbType.String);
        objCmd.Parameters.Add("@overskrift", MySqlDbType.String);
        objCmd.Parameters.Add("@brodtekst", MySqlDbType.String);
        objCmd.Parameters.Add("@tiltradelse", MySqlDbType.Date);
        objCmd.Parameters.Add("@modtager", MySqlDbType.String);
        objCmd.Parameters.Add("@ansogningsfrist", MySqlDbType.Date);
       
        objCmd.Parameters["@underoverskrift"].Value = TBUnderoverskrift.Text;
        objCmd.Parameters["@overskrift"].Value = TBOverskrift.Text;
        objCmd.Parameters["@brodtekst"].Value = TBBrodtekst.Text;
        objCmd.Parameters["@tiltradelse"].Value= TBTiltradelse.Text;
        objCmd.Parameters["@modtager"].Value = DDLModtager.SelectedValue.ToString();
        objCmd.Parameters["@ansogningsfrist"].Value = TBAnsøgningsfrist.Text;

        objCmd.ExecuteNonQuery();
        objConn.Close();
}

hvorfor kommer er mine paremeter = null ?
Avatar billede arne_v Ekspert
21. februar 2006 - 00:22 #4
proev:

objCmd.Parameters["@ansogningsfrist"].Value = DateTime.Parse(TBAnsøgningsfrist.Text);
Avatar billede arne_v Ekspert
21. februar 2006 - 00:22 #5
og

objCmd.Parameters["@tiltradelse"].Value= DateTime.Parse(TBTiltradelse.Text);
Avatar billede arne_v Ekspert
21. februar 2006 - 00:23 #6
og saa kan jeg ikke huske om MySQL bruger @xxxx ligesom SqlServer eller
:xxxx eller ?xxxx (det varierer lidt mellem databaserne)
Avatar billede pumpin Nybegynder
21. februar 2006 - 10:31 #7
lige meget hvrdan jeg vender og drejer det tegn forand så giver den denne fejl:

#23000Column 'underOverskrift' cannot be null

og jeg mener underOverskrift er af typen text hvor svært kan det lige være at stoppe ind :)

jeg har prøvet samme ting hvor jeg lige lavede en hurtig MS sql DB der virker det fint.
Avatar billede pumpin Nybegynder
21. februar 2006 - 11:23 #8
Helt sikkert nu virker lortede sku :D jeg fant mange på MySQL's egen hjemme side som er løbet ind i problemet også der var løsningen at bruge ? og så ikke noget tekst i sine parameter og da jeg ændrede min kode til at se sådan her ud virker det fino og hvor er det dog dejligt at vide at ado.net tager sig af mine datetime og ligende :)

MySqlConnection objConn = new MySqlConnection("server=XXX; user id=XXX; password=XXX; database=XXX; pooling=false;");
        string inserSQL = "INSERT INTO VH_STELLINGER (underOverskrift, overskrift, brodtekst, tiltradelse, modtager, ansogningsfrist) VALUES (?1, ?2, ?3, ?4, ?5, ?6)";
        objConn.Open();
        MySqlCommand objCmd = new MySqlCommand(inserSQL, objConn);

        //OPRETTER PARRAMETER AF DEN RETTE TYPE TIL ADO.NET
        objCmd.Parameters.Add("?1", MySqlDbType.String);
        objCmd.Parameters.Add("?2", MySqlDbType.String);
        objCmd.Parameters.Add("?3", MySqlDbType.String);
        objCmd.Parameters.Add("?4", MySqlDbType.Date);
        objCmd.Parameters.Add("?5", MySqlDbType.String);
        objCmd.Parameters.Add("?6", MySqlDbType.Date);
       
        //BINDER MINE CONTROLS OP MOD PARAMETERNE
        objCmd.Parameters["?1"].Value = TBUnderoverskrift.Text;
        objCmd.Parameters["?2"].Value = TBOverskrift.Text;
        objCmd.Parameters["?3"].Value = TBBrodtekst.Text;
        objCmd.Parameters["?4"].Value= TBTiltradelse.Text;
        objCmd.Parameters["?5"].Value = DDLModtager.SelectedValue.ToString();
        objCmd.Parameters["?6"].Value = TBAnsøgningsfrist.Text;

        objCmd.ExecuteNonQuery();
        objConn.Close();
Avatar billede pumpin Nybegynder
21. februar 2006 - 11:36 #9
btw arne super fed guide. det var lige hvad jeg manglede for at finde ud af hvad parameters er og hvor smarte de er.. nu er det så 100 kroners spørgsmålet kommer..

kan du kort forklare hvad og hvordan man evt kunne bruge parameter collections..

du mangler jo at kaste et svar så kunne du jo lige krydre det op med lidt godter om det :) :) på forhånd mange tak for hjælpen
Avatar billede pumpin Nybegynder
21. februar 2006 - 11:42 #10
hmmm nu er det så lige at jeg kiggede på den side som laver udtrækne så giver den mig denne fejl: Unable to convert MySQL date/time value to System.DateTime

nogen gode ider :)
Avatar billede pumpin Nybegynder
21. februar 2006 - 11:59 #11
hvis jeg stopper Allow Zero Datetime=true ind i min connectionstring så virker det hvis jeg binder det til et gridview men ikke et formview
Avatar billede pumpin Nybegynder
21. februar 2006 - 12:01 #12
den er så tæt på at være i hus
Avatar billede pumpin Nybegynder
21. februar 2006 - 12:08 #13
cool burger sidste og endlige sprøgsmål som skal afslutte denne suveræne guid til andre der ønsker at rode med Mysql parameters og DateTime

hvis jeg bruger <% Convert.ToDateTime(Eval("tiltradelse"))%> virker det fino.. men jeg vil ikke have tid på hvad kan jeg bruge istedet for DateTime..
Date virker ikke
Avatar billede arne_v Ekspert
21. februar 2006 - 18:18 #14
du kan formatere med:

.ToString("dd-MM-yyyy")
Avatar billede arne_v Ekspert
21. februar 2006 - 18:18 #15
og et svar
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