ich programmiere in Mono/Linux für einen Linux-Server asp.net,*.aspx .
Da komme ich momentan nicht weiter.
Ich habe eine SqlDateSource mit MySQL-Connection.
Diese SqlDateSource ist mit einer GridView verbunden.
Solange ich die Spalten der Datenbank direkt ausgebe, funktioniert es
normal.
Verwende ich aber eine MySql Funktion im Query, z.B.
"Select sum(col1), col2 from table1",
dann hat er probleme mit col1:
System.Web.HttpException
Property col1 not found in System.Data.DataRowView
Die gleiche Query funktioniert aber, wenn ich direkt im
MySql-Eingabe-Interpreter bin.
Kennt jemand eine Lösung?
Auf andere Datenbanken oder LinQ umsteigen ?
(Mit SQLite geht es auch nicht, schon ausprobiert, das scheint kein
DB-Problem zu sein, sondern asp.net oder mono)
Hallo Detlef,
ich habe zwar keine Ahnung von asp.net, aber "Gridview" klingt für mich
schon nach einer Funktion für die Präsentation der Daten in einer GUI.
Eventuell braucht er ja dafür konkrete Spaltennamen?
In diesem Fall könnte eine leicht abgeänderte Query wie
"Select sum(col1) as summe1, col2 from table1"
vielleicht zielführend sein.
Detlef schrieb:> Nee, ich habe es ausprobiert "sum(col1) as sum1", und er wirft die> gleiche Exception.
Dann wäre es interessanter, mehr herauszubekommen, was ihn da stört.
> Die MySqlCommand Class ist ja sehr umfangreich,> man müsste vllt die Query anders formulieren?
Aus Sicht von MySQL ist die Query syntaktisch in Ordnung. habe da
sgerade noch einmal direkt im MySQL getestet.
Ich vermute die Ursache eher in Deinem Framework drumherum.
Wenn ich den Spaltennamen in runden Klammern schreibe, also
"Select (col1), col2 from ..."
dann kommt auch die gleiche Exception.
(Aber funktioniert im MySql-Interpreter)
Muss man vllt fÜr die Klammern spezielle Escape-Sequenzen verwenden?
Detlef schrieb:> "Select sum(col1), col2 from table1",
Du zeigst zwar die Tabelle nicht, also nur eine Vermutung:
Du kannst Aggregate (sum) nicht mit Einzelwerten mischen, du brauchst
entweder auch ein Aggregat fuer col2 oder ein 'group by col2'.
HTH
leo
Sorry,
ich hatte nicht sum(), sondern from_unixtime().
Die Zeiten sind in der Spalte col1 als unix_timestamp gespeichert, ich
wollte sie als Datum/Uhrzeit anzeigen.
Da ich vorher viel im Internet suchte, und sum() öfters vorkommt als
from_unixtime() habe ich es geändert.
Durch die Exception ist mir die Vermischung Aggregate/Einzel gar nicht
aufgefallen.
Detlef schrieb:> Sorry,> ich hatte nicht sum(), sondern from_unixtime().
Das erleichtert die Fehlersuche ungemein, keine genaue Angaben, falsche
Source, ..., baba
leo
Das hatte mit dem Fehler nichts zu tun.
Das Verhalten war bei sum() oder from_unixtime() gleich.
Das obige Code-Beispiel mit der abgedruckten Exception war aber original
mit sum() !
Ich bin davon ausgegangen, dass Mono seltene DB-typische Funktionen
nicht kennt, aber bei DB-unabhängigen Funktionen funktionieren müsste.
(Von timestamps darf und kann ich ja die Summe bilden,
aber das macht wenig Sinn.)