verwendetes Datenbanksystem: MySQl
Hallo,
wieder einmal das alte Leid. Ich habe google schon um eine Lösung ersucht und jedoch nichts richtiges gefunden.
In meine Tabelle sind DATTIME-Einträge mit 0000-00-00 00:00:00 Einträgen.
Das das .net diese Einträge nicht mag ist mir bekannt. Ich ahbe folgenden Workaround im Netz gefunden
SELECT DATE_FORMAT( `Bewerbzeit` , '%d/%m/%Y' ) AS Bewerbzeit
aber das mag er auch nicht. Jedoch eine konkrete Lösung hat sich mir nicht erschlossen. Was ist zu tun?
string stm = "SELECT DATE_FORMAT( `Bewerbzeit` , '%d/%m/%Y' ) AS Bewerbzeit";
try
{
conn = new MySqlConnection(cs);
conn.Open();
ds = new DataSet();
da = new MySqlDataAdapter(stm, conn);
da.Fill(ds, "arbeitnehmer");//Unable to convert MySQL date/time value to System.DateTime
dg.DataSource = ds.Tables["arbeitnehmer"];
} catch (MySqlException ex)
{
Console.WriteLine("Error: " + ex.ToString());
} finally
{
if (conn != null)
{
conn.Close();
}
}
Grüße niesel
Allows NULL Meinst du damit, dass BNOT NULL nicht vorhanden ist in der Struktur des Attributes?
Grüße
Ich mach das so :
private void MySqlDatumKorrigieren()
{
if (Parameter.dbprovider != Parameter.DatenbankProvider.MySQL) return;
//Leeres Datum kann vom .Net Connector nicht verarbeitet werden
db.ExecuteSQL("update tk set tk_em_gesendet = '1800-01-01' where tk_em_gesendet = '0000-00-00'");
db.ExecuteSQL("update pa set pa_wirtjahr = '1800-01-01' where pa_wirtjahr = '0000-00-00'");
}
Das Jahr 1800 muss dann im Frontend als leeres Datum definiert werden. Man kann das 0000-Datum natürlich auch in null wandeln wenn die Spalte null erlaubt.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3