| | |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
|
Autor
|
Thema: update date = NULL ... aber wie? (15444 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 |

| | Senior Entwicklungsingenieur (m/w/d) | In Schienenfahrzeugen, Kompressoren oder Leistungstransformatoren, in der Antriebstechnik und im Schiffbau sorgen unsere Ventilatoren zuverlässig für die richtige Belüftung oder Entwärmung. 60 Jahre Erfahrung, ca. 125 hoch qualifizierte Beschäftigte sowie modernste Mess- und Prüfeinrichtungen gewährleisten unseren Kunden höchste Qualität. Unsere Produkte stehen für absolute Zuverlässigkeit, für ein Höchstmaß an Funktionalität und Innovation.... | | Anzeige ansehen | Feste Anstellung |
|
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 >>)
 |