| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: update date = NULL ... aber wie? (15369 mal gelesen)
|
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002
|
erstellt am: 06. Dez. 2005 15:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo, mein Problem besteht darin, dass ich einem Datumsfeld nicht '0000-00-00' zuweisen kann. Versuche über VB .Net auf MySql zuzugreifen und habe schon alles ausprobiert. Date, Datetime, Timestamp! An meinem Connectionstring hängt auch 'Allow Zero Datetime = yes' mit 'true' verhält es sich nicht anders. Der Sql-Connector liegt inder Version 1.0.7 vor. Ich mache in VB keine Typumwandlung und nix. Wenn ich Werte wie '0001-01-01' einfüge gibt es keine Probleme. Nun hab ich ja heut auch schon den ganzen Tag gelesen und ich zitiere mal aus einem Buch: "... Jeder dieser Typen (Anm.: gemeint sind Tag, Monat,Jahr) hat einen zulässigen Wertebereich und einen "0"-Wert, der benutzt wird, wenn Sie einen wirklich unzulässigen Wert speichern. ... Um Datumsüberprüfungen schnell zu machen, überprüft MySql nur, das der Monat im Bereich 0 bis 12 liegt und der Tag im Bereich 0 bis 31." Vielleicht erklärt das, warum man keine 0 Werte schreiben kann, aber was macht und wie schreibt man einen "0"-Wert .... puuuuuhh ... Ziel soll es sein einen Wert like '0000-00-00' in eine MySql Datenbank zu schreiben, ohne das es eine Exception gibt. Wenn Ihre noch mehr Infos braucht, dann einfach schreiben. Hier hilft glaub ich alles weiter, da es ein bekanntes Problem ohne eine wirkliche Lösung ist. Vielen Dank und Grüssle TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cartoonhero Mitglied
 
 Beiträge: 246 Registriert: 21.04.2004
|
erstellt am: 06. Dez. 2005 16:30 <-- editieren / zitieren --> Unities abgeben:          Nur für BloodyMess
Hallo, eigentlich sollte es via SQL möglich sein mit: INSERT INTO test.testdate (id, testtext , datum) VALUES ( 0, 'testtext', '0000-00-00' ) INSERT INTO test.testdate (id, testtext , datum) VALUES ( 0, 'testtext', null ) oder bei Update:
UPDATE test.testdate SET datum = '0000-00-00' WHERE id = 0 UPDATE test.testdate SET datum = null WHERE id = 0 gruß cartoonhero
[Diese Nachricht wurde von cartoonhero am 06. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| Student*in für Abschlussarbeit Bereich Prototypenbau und 3D-Druck | Life is always about becoming? Im Leben geht es darum, sich auf eine Reise zu begeben, um die beste Version unseres zukünftigen Selbst zu werden. Während wir Neues entdecken, stellen wir uns Herausforderungen, meistern sie und wachsen über uns hinaus.
Bewerben Sie sich bei Mercedes-Benz und finden Sie den Aufgabenbereich, in dem Sie Ihre Talente individuell entfalten können. Dabei werden Sie von visionären Kolleginnen und Kollegen unterstützt, die Ihren Pioniergeist teilen.... | Anzeige ansehen | Bachelor-/Master-/Diplom-Arbeiten |
|
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002
|
erstellt am: 06. Dez. 2005 17:11 <-- editieren / zitieren --> Unities abgeben:         
Ja richtig, so hab ich die Tabellen auch erstbefüllt und im Prinzip mache ich nun im Code auch nichts anderes. Anbei mal ein Beispiel, wie es im Code aussieht ...
Code: Dim TMPDataTable As DataTable = New DataTable TMPDataAdapter.Fill(TMPDataTable) TMPDataAdapter.UpdateCommand = _ New MySqlCommand("UPDATE person " & _ "SET InstitutID = ?InstitutID, " & _ "BelehrungsDatum = ?BelehrungsDatum, " & _ "WHERE PersonID = ?PersonID", _ clsMysql.getConnection) clsMysql.updatePara2DA(TMPDataAdapter, "PersonID", MySqlDbType.Int32.ToString) clsMysql.updatePara2DA(TMPDataAdapter, "InstitutID", MySqlDbType.Int32.ToString) clsMysql.updatePara2DA(TMPDataAdapter, "BelehrungsDatum", MySqlDbType.Date.ToString) TMPDataAdapter.Fill(TMPDataTable) Dim updateDataRow As DataRow = TMPDataTable.Rows(0) updateDataRow("PersonID") = .txt_main_laufende_Nummer.Text updateDataRow("InstitutID") = .cbo_Institut.SelectedIndex + 1 updateDataRow("BelehrungsDatum") = .txt_Unterweisung.Text TMPDataAdapter.Update(TMPDataTable) TMPDataAdapter.Dispose()
Habe es mal stark dezimiert. Vom Prinzip sieht es ja wie dein SQL Statement aus - die Wertezuweisungen und Definition der Werte für MySql werden im Nachhinein gemacht. Das Problem wäre bei diesem Beispiel das 'BelehrungsDatum', wenn man es mit dem Wert '00.00.0000' befüllen würde. Grüssle TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |