Hej. Du kan kan välja att formatera din stäng, lägg ex till: Var skall jag sätta in den? Kan du förklare lite mer... är ny med det här med ASp.NET. Jag änvände VB kod i min sida. Ok... Jag klistrade in suben på min sida och ersatte med rätta siffror. Jag fick detta meddelandet: Använd dig utav ett vanligt textfält i access och mata in datumet med... Testa med detta: MAn bör inte lagra ett datum som text. Som indatamask i Databasen har jag detta formatet yyyy-mm-dd. Att du för 00:00:00 beror på att det är en DateTime, den fyller i resten då. Fältet i databasen ahar datatypen Datum/Tid. Och som in datamask har jag satt "0000-00-00;0;_" utan "". Testade du Fredriks variant: Jag hämtar fem fält från dbn. Datumet är det femte fältet jag hämtar i SQL satsen. Eller skall det vara numret på fältet i databasen? Problemet ligger i att den tar och försöker göra din första rad till en datetime. Alltså Kolumnnamnet. Jahapp... "MAn bör inte lagra ett datum som text." Jag lagrar inte datumet som en text sträng i databasen. Göra man det så kan man inste typ sortera efter det. Hade jag varit dig hade jag läst på litemer ang DataGriden, du hittar nyttig info under Quiskstarten som du kan installera när du kört in .Net Ramverk.Datagriden visar inte samma ddatum format som jag har i min databas.
Jag har en Access databas med ett medlemsregister.
anvID (Raknare), Namn (Text), AnvNamn(Text), Losenord(Text), RegDatum(Datum/Tid).
I fältet RegDatum står detta datum formaterat som jag skriver: 2003-09-15
Sedan kopplar jag min Datagrid och laddar all data in i den. Alla fält Utom RegDatum visar innehållet precis som det står i databasen. RegDatum visas så här:
2003-09-15 00:00:00.... Den lägger till 00:00:00 efter datumet. Varför gör den det? Och hur får jag bort det? Det står inte så i min databas.
Tacksam på svar.
//AndiSv: Datagriden visar inte samma ddatum format som jag har i min databas.
<%# DataBinder.Eval(Container.DataItem, "Datum", "{0:YYYY-DD-mm}") %>
//Johan NSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
Du gör ingen alternative template utan bilder direkt och listar allt rakt av?
Hum.
Då kan du använda dig av Item_Bound eventet.
Sub Item_Bound(sender As Object, e As DataGridItemEventArgs)
e.Item.Cells(<nummer på din cell>).Text = e.Item.Cells(<nummer på din cell>).Text.ToString("YYYY-DD-mm")
End Sub
Byt ut <nummer på din cell> till det nummer din cell har. Räkna bara dina columner så tar du columnnummret -1
Om Datum ligger på kolumn 5 så blir ditt cell nummer 4 då det är indexbaserat. Är du med?
//Johan NSv: Datagriden visar inte samma ddatum format som jag har i min databas.
BC30311: Det går inte att konvertera värdet av typen String till System.IFormatProvider
Här är min kod:
<script language="VB" runat="server">
Sub PageLoad()
Dim SQL As String
SQL = "SELECT anvID AS ID, anvandarnamn AS Användarnamn, fornamn AS Förnamn, efternamn AS Efternamn, " & _
"datum AS Registrerad FROM tblMedlemmar WHERE Anvandarnamn Like 'A%'"
Dim Conn As New OLEDBConnection(dbKoppling) 'Skapar DB kopplingen
Dim Adapter As New OLEDBDataAdapter(SQL, Conn)
Dim DS As New DataSet
Adapter.Fill(DS, "medRegDG")
regMedDG.DataSource = DS
regMedDG.DataBind()
End Sub
Sub Item_Bound(sender As Object, e As DataGridItemEventArgs)
e.Item.Cells(4).Text = e.Item.Cells(4).Text.ToString("YYYY-DD-mm")
End Sub
</script>
Och sedan har jag infogat en datagrid på sida.
Har jag infogat suben rätt?
//AndiSv: Datagriden visar inte samma ddatum format som jag har i min databas.
DateTime.Now.ToString("yyyy-MM-dd")Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
<code>
Sub Item_Bound(sender As Object, e As DataGridItemEventArgs)
e.Item.Cells(4).Text = Convert.ToDateTime(e.Item.Cells(4).Text).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo)
End Sub
</code>
/Fredrik NorménSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
Jag fattar inte varför den lägger till 00:00:00. Det numret finns inte i fältet i databasen utan där står bara datum formaterat som yyyy-mm-dd. Men sen när jag överför data med Adapterobjektet till dataset och sedan från dataset till datagriden. Så blir det så här. Det blev likadant när jag använde commandobjektet med datareadern.Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
Den kod jag skickade dig bör fungera, skrev dock lite fel, det skall vara "yyyy-MM-dd"
Men du får fortfarande fel?
Vilken datatyp kör du med i Access?
//Johan NSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Nu får jag meddelandet: BC30451: Namnet DateTimeFormatInfo har inte deklarerats
//AndiSv: Datagriden visar inte samma ddatum format som jag har i min databas.
<code>
e.Item.Cells(4).Text = Convert.ToDateTime(e.Item.Cells(4).Text).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo)
</code>
Du är helt säker på att cell 4 är där du har datumet?
//Johan NSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Den gnäller om att DateTimeFormatInfo inte har deklarerats.Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
Detta löser du genom att hoppa äver första raden och därefter konvertera din data.
Hade du använt dit av ItemTempleates hade denna hantering varit mkt enklare.
//Johan NSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Får väl läsa på mer får jag fattar inget :(
tacksam för all hjälp
//andiSv: Datagriden visar inte samma ddatum format som jag har i min databas.
För att?Sv: Datagriden visar inte samma ddatum format som jag har i min databas.
När jag sparar medlemmen i formuläret hanvänder jag denna SQL (förkortad)
INSERT INTO tbkMedlem(anvandarnamn, fornamn, efternamn, regdatum) VALUES('" & anvandarnamn.Text & "','" & fornamn.Text & "'.'" & efternamn.Text & "'," & FormatDateTime(Today, 2) & ")"
Eller e det fel på min INSERT SQL sats? För i databasen har jag fältet regdatum med datatypen Datum/tid. och indatamask 0000-00-00;0;_
//AndiSv: Datagriden visar inte samma ddatum format som jag har i min databas.
Där hittar du väldigt nyttig information.
Om du i din ASPX sida sätter din DataGrid att ha attributet AutoGenerateColumns till fasle så kan du själv bestämma hur du vill presentera datan. Namn på kolumner m.m.
<code>
<asp:datagrid AutoGenerateColumns="False" ..... >
<Columns>
....
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox runat="server" Text='
<%# DataBinder.Eval(Container.DataItem, "Datum","{0:YYYY-MM-dd}")%>' </asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
...
</asp:datagrid>
</code>
OBS! Koden skrev jag för hand och är inte helt hundra på om den är korrekt utformad.
//Johan N