Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Datum/Uhrzeit in Access Tabelle einfügen
Snowwolf3000
myCSharp.de - Member

Avatar #avatar-3109.jpg


Dabei seit:
Beiträge: 142
Herkunft: Süddeutschland

Themenstarter:

Datum/Uhrzeit in Access Tabelle einfügen

beantworten | zitieren | melden

Hallo,
also ich möchte in eine Accesstabelle ein Datum/Uhrzeit einfügen. Allerdings bekomm ich dann immer einen Fehler das die Datentypen unverträglich sind. In Access wird das Feld Datum/uhrzeit mit der Formatierung "Standarddatum"verwendet. Hab schon ein wenig in Forum gewühlt und festgestellt das man wohl irgendwie den Wert in einen String konvertieren muss. So richtig verstanden hab ich das aber nicht. Wäre nett wenn mir irgend jemand erklären könnte was ich genau tun muss. Hier mal die meiner Meinung nach relevanten Codeschnipfel.


DateTime Aufnahmedatum;			
Aufnahmedatum = folder.CreationTime;
....
currentAlbumRaw.Aufnahmedatum = Aufnahmedatum;
ds.Album.AddAlbumRow(currentAlbumRaw);
...
String InsertCommandString = "INSERT INTO Album (AlbumNr,Aufnahmedatum) VALUES (@AlbumNr,@Aufnahmedatum)";			
...			
insertCommand.Parameters.Add("@Aufnahmedatum",OleDbType.DBTimeStamp,8,"Aufnahmedatum");


Gruß,
Snowwolf
private Nachricht | Beiträge des Benutzers
boco25
myCSharp.de - Member



Dabei seit:
Beiträge: 484
Herkunft: Frankfurt

beantworten | zitieren | melden

Hi, man soll zuerst die Suchfunktion des Forums benutzen. Ich beantworte die Frage nicht zum ersten Mal.
Altes Problem, es lieg daran, dass Access und .Net-Datentypen nicht identisch sind, mach aus deinen DateTime-Typ ein String und dann konvertier es mit DATEVALUE in SQL_Befehl zu einem Data-Typ, wlecher Access versteht.
Es ist nicht die einzige Möglichkeit, aber die funktioniert sicher.
Gruss,
Boris
private Nachricht | Beiträge des Benutzers
Snowwolf3000
myCSharp.de - Member

Avatar #avatar-3109.jpg


Dabei seit:
Beiträge: 142
Herkunft: Süddeutschland

Themenstarter:

beantworten | zitieren | melden

Besten Dank!
Hat ohne Probleme funktioniert. DATEVALUE hab ich garnicht gebraucht, weil ich ja auch die Uhrzeit drin haben will.
private Nachricht | Beiträge des Benutzers
GambaJo
myCSharp.de - Member

Avatar #avatar-4143.jpg


Dabei seit:
Beiträge: 101

beantworten | zitieren | melden

Ich krieg das irgendiwe nicht gebacken. Hat jemand mal ein Beispiel?
                    s = "INSERT INTO tAufgaben ([dDatum], [iKdSn], [iModulNr], [aAufgabe], [iPrioritaet], [fGeplant], [fAufwand], [bErledigt]) VALUES ('"
                        + dbconn.CnvDateToStr(dateTimePickerDatum.Value) + "', '"
                        + dateTimePickerDatum.Value. + "', '"
                        + textBoxKdSn.Text + "', '"
                        + textBoxModulNr.Text + "', '"
                        + textBoxAufgabe.Text + "', '"
                        + comboBoxPrioritaet.Text + "', '"
                        + textBoxGeplant.Text + "', '"
                        + textBoxAufwand.Text + "', '"
                        + checkBoxErledigt.Checked
                        + "')";
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1184

beantworten | zitieren | melden

Innerhalb der SQL Anweisung verwendest Du einfach "DateValue(<datumswert>)". Einfach mal ein wenig ausprobieren, ist ganz leicht.
private Nachricht | Beiträge des Benutzers
GambaJo
myCSharp.de - Member

Avatar #avatar-4143.jpg


Dabei seit:
Beiträge: 101

beantworten | zitieren | melden

Muss ich für diesen Befehl etwas spätzieles einbinden, denn diese Funktion wird mir nicht vorgeschlagen. Im MSDN steht auch , dass dafür VB Voraussetzung ist.
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1184

beantworten | zitieren | melden

Das ist eine Sql Funktion!

Folgend ein Beispielt:

string sql = "INSERT INTO Tabelle (DatumUhrzeit) VALUES(DateValue('" + datumUhrzeit + "')"

Ist es jetzt besser zu verstehen?
private Nachricht | Beiträge des Benutzers
GambaJo
myCSharp.de - Member

Avatar #avatar-4143.jpg


Dabei seit:
Beiträge: 101

beantworten | zitieren | melden

Das ist nicht mein Problem. DIe Abfrage ist ja so weit klar. Nur die Funktion "DateValue" kennt mein VS nicht. Wenn ich das eingebe, müßte es doch blau dargestellt werden (im Editor). Und außerdem kriege ich eine Fehlermeldung beim Debuggen.
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1184

beantworten | zitieren | melden

Die Funktion DateValue ist keine C# oder VB.NET Methode, sondern eine Access-Sql-Methode.


Als Beispielt: "INSERT INTO" ist ja auch keine C# oder VB.NET Methode, sondern eine Anweisung des SQL-Befehlssatzes. Genau so verhält es sich mit der Funktion "DateValue".

Schau Dir mein Beispiel noch mal genau an. Das Wort "DateValue" befindet sich innerhalb des Strings...
private Nachricht | Beiträge des Benutzers
GambaJo
myCSharp.de - Member

Avatar #avatar-4143.jpg


Dabei seit:
Beiträge: 101

beantworten | zitieren | melden

Hab mir eine Testtabelle angelegt mit nur einer Spalte: dDate

Mein String:

s = "INSERT INTO tTest(dDatum) VALUES(DateValue('" + dateTimePickerDatum.Value.ToShortDateString() + "')";

Da bekomme ich die Fehlermeldung: Syntaxfehler in der INSERT INTO-Anweisung.
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1184

beantworten | zitieren | melden

Also, ich hab Dir mal ein paar ein Beispielprojekt zusammengestellt. Das ganze ist ein 2.0 Projekt, wenn Du es in 1.1 brauchst, meld' Dich einfach kurz per Email, ICQ, MSN

Download.
http://www.veloursnebel.de/Code/DateValueInAccess.zip
private Nachricht | Beiträge des Benutzers
GambaJo
myCSharp.de - Member

Avatar #avatar-4143.jpg


Dabei seit:
Beiträge: 101

beantworten | zitieren | melden

Jetzt fällt es mir wie Schuppen vor den Augen. Ich Trottel hab die letzte Klammer nicht zugemacht. Danke für deine Mühe, jetzt klappts.
private Nachricht | Beiträge des Benutzers