Új hozzászólás Aktív témák

  • nyunyu

    félisten

    Benazok C#-ban egy programot, ami MS SQL adatbazisban elore legeneralt adatokat olvas be, es par valtozotol fuggoen masik tablakba szurja be a rekordokat.
    Ide-oda pakolando rekordokban szerepel kezdo es vegdatum (utobbi lehet NULL!)

    Ennek oromere hasznalnam az SqlDateTime tipust, tok jo, frankon mukodik vele az adatbazisbol olvasas, nem kell figyelni arra, hogy a bemenet lehet NULL is.

    Szivas resze ott van, hogy kezzel raknam ossze a szervernek feladando SQL queryt (hiba eseten logolhato, utolag kezzel futtathato, stb :DDD), de ezzel a tipussal erosen meggyult a bajom.

    Szoval rakom ossze a queryt:
    SqlCommand cmd=new SqlCommand("",conn)
    cmd.CommandText = "INSERT INTO blabla VALUES ("+vegDatum+")";

    Arra hamar rajottem, hogy ennek az eredmenye csak akkor helyes SQL szintaktikailag, ha a vegDatum NULL.
    Ha nem NULL, akkor aposztorofok koze kell tenni a datumot.
    cmd.CommandText = "INSERT INTO... VALUES ('"+vegDatum+"')";

    Csakhogy ennek az eredmenyet sem eszi meg az SQL 2005, mert a magyar Windows a datum moge pontot tesz (pl. 2011.12.16. 00:25:00 )
    Pont nelkul megenne...

    Szoval hogyan lehet epkezlab, SQL altal emesztheto formaju stringge alakitani az SqlDateTime tipust?

    ToString() metodusa ugyanigy pontot tesz a nap moge, formazni meg nem lehet. :(

    Ez erosen ganyolas szagu, de legalabb mukodik:
    DateTime vegD=(DateTime)vegDatum;
    cmd.CommandText = "INSERT INTO... VALUES ('"+vegD.ToString("yyyy-MM-dd HH:mm:ss)"+')";

Új hozzászólás Aktív témák

Hirdetés