Vraag & Antwoord

Programmeren

[asp.net] datum in database krijgen

8 antwoorden
  • kan iemand mij uitleggen waarom er steeds een datum van ver in de middeleeuwen wordt ingevoerd,4-7-1894, in de ACCESS database door deze code ? [code:1:e1ebbfd9e6] Private Sub _cmdNav_3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _cmdNav_3.Click Dim verbindingsString As String = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\testdataset 5.0.0.mdb;" Dim verbinding As New OleDb.OleDbConnection(verbindingsString) Try verbinding.Open() 'Dim tmp As Date ' Dim datum As String 'Dim datum As New Date 'tmp = Date.Today.ToString("dd-MM-yy") Dim datum As String datum = Date.Today.ToString("dd-MM-yy") Dim opdracht As New OleDb.OleDbCommand("update tabel set datum = " & datum & " , versie = '5.0.0' where id = 1", verbinding) MessageBox.Show("stap 1") opdracht.ExecuteNonQuery() MessageBox.Show("stap 2") Catch fout As Exception MessageBox.Show("error") Finally verbinding.Close() End Try End Sub[/code:1:e1ebbfd9e6]
  • 1) De middeleeuwen waren in 1894 allang voorbij ;) 2) Wat voor type is die "datum" kolom? Als dat een datum/tijd type is, zou ik er een string type van maken, of (en dat is beter): gewoon een object van het type "Date" in opslaan...
  • het is idd een datum/tijd type dus Dim datum As String wijzigen in Dim datum As Date ? ik ben nog een leek in asp.net
  • Ja, en dan die hele "ToString" natuurlijk weghalen... Je kan dan net zo goed heel die variabele "datum" weghalen en in de query meteen "DateTime.Now" zetten (ipv datum) zodat de huidige tijd ingevoerd wordt in de database. Overigens is het handig om van de query zelf (de SQL code dus) een aparte variabele te maken, dan kun je ook zien wat er nu eigenlijk in de database terecht gaat komen als je gaat debuggen...
  • Als je een veld van het type datum/tijd in je Access tabel wil vullen/wijzigen, moet je in de query de waarde tussen hekjes zetten. Dus[code:1:674e505941]Dim opdracht As New OleDb.OleDbCommand("update tabel set datum = #" & datum & "# , versie = '5.0.0' where id = 1", verbinding) [/code:1:674e505941]En dan kun je de variabele datum gewoon als string declareren.
  • dank u allen!! #" & datum & "# werkte uiteindelijk
  • nog een vraag, ik heb een veld 'versie' in de database, de datatype is tekst. in een bestand staat de "public const xsdVersie as string" voor deze versie, met waarde '5.0.0' maar, wanneer ik ipv '5.0.0' gewoon > #" & xsdVersie & "# in de query invoer, dan krijg ik het volgende in de database te zien: 5:00:00 wat moet er hier anders ?
  • [quote:f9a2c63010="sjemmie"]nog een vraag, ik heb een veld 'versie' in de database, de datatype is tekst. in een bestand staat de "public const xsdVersie as string" voor deze versie, met waarde '5.0.0' maar, wanneer ik ipv '5.0.0' gewoon > #" & xsdVersie & "# in de query invoer, dan krijg ik het volgende in de database te zien: 5:00:00 wat moet er hier anders ?[/quote:f9a2c63010] De hekjes geven aan dat de waarde als datum/tijd moet worden geïnterpreteerd, zodat Access (of de Jet-engine) de waarde juist in de database zet. Het is voor string variabelen dus niet nodig om daar # omheen te zetten. Wat er bij jou dus gebeurt, is dat de Jet-engine de waarde 5.0.0 vertaalt naar een tijd, dus 5:00:00. Je kan dus gewoon [code:1:f9a2c63010]'" & xsdVersie & "'[/code:1:f9a2c63010] gebruiken, met enkele quotes ( ' ) in plaats van hekjes ( # )

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.