Laden...

Fehler bei Datenkonvertierung im DataSet

Erstellt von DerChrisi vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.269 Views
D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren
Fehler bei Datenkonvertierung im DataSet

Hallo,

ich bin auf der Arbeit an einem Projekt, soweit funktioniert auch alles einwandfrei.
Allerdings wird im DataGridView nicht nach Zahlen bzw. Datum sortiert. Der Fehler ist klar, ich muss im DataSet in einen Integer bzw. DataTime umwandeln.
Das hat auch in der ersten Tabelle einwandfrei mit:

this.uebersicht_bearbeiten.uebersicht.AnzahlColumn.DataType = typeof(int);
this.uebersicht_bearbeiten.uebersicht.VonColumn.DataType = typeof(DateTime);

funktioniert, jedoch bei der zweiten Tabelle mit:

this.pruefmittelDataSet6.Pruefmittel.AnzahlColumn.DataType = typeof(int);

habe ich einen Fehler bekommen, allerdings nicht beim umwandeln sondern beim füllen der Tabelle danach!

also

sql_connect.loadDataview("Pruefmittel").Fill(this.pruefmittelDataSet6.Pruefmittel);

Die Fehlermeldung:
"Das Objekt des Typs "System.Int32" kann nicht in Typ "System.String" umgewandelt werden."

Ich hoffe, ihr könnt mir irgendwie helfen!

Vielen dank im vorraus,

Chrisi

458 Beiträge seit 2007
vor 13 Jahren

Da steht doch was der Fehler ist:
Du versuchst einen Integerwert in eine Stringspalte einzufuegen.

be the hammer, not the nail!

D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren

Ja, das ist mir schon klar, aber ich habe doch in der DataGridView nicht die möglichkeit einen Datentyp anzugeben oder?

D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren

Weiß niemand eine Antwort?

I
279 Beiträge seit 2008
vor 13 Jahren

Das datagrid liest doch den datentyp der an die spalte gebundenen property aus.

D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren

Der Datentyp der Spalte in der SQL Tabelle ist ebenfalls vom Wert Integer, ich war auch der Meinung, dass dieses vom DataSet übernommen wird, aber es wird immerwieder versucht in einen String umzuwandeln.

Vielen dank schonmal, für die Antworten!

F
10.010 Beiträge seit 2004
vor 13 Jahren

Weder das dgv noch das DataSet "wissen" was für Datentypen da vorhanden sind.

Es ist immer derjenige der befüllt dafür zuständig.
Wenn du also das DataSet befüllst wirst Du es geschafft haben das es eine String Spalte ist.

D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren

okay, aber lege ich den Datentyp mit
this.pruefmittelDataSet6.Pruefmittel.AnzahlColumn.DataType = typeof(Int32);
nicht schon fest?

O
461 Beiträge seit 2009
vor 13 Jahren
Typisierung

Hallo, seltsam das du einen anderen Datentyp im DataSet als in der Datenbank selber hast. Ist das ein typ. DataSet oder nicht ? Falls nicht, übernimmst du zuerst das Schema der Datenbank

TableAdapter.FillSchema(DataSet, SchemaType.Source, "TabellenName");

??

D
DerChrisi Themenstarter:in
7 Beiträge seit 2011
vor 13 Jahren

Ich habs jetzt hingekriegt, in dem ich im DataSet-Designer den Typen auf Integer gesetzt habe, ich verstehe zwar nicht, wieso das funktioniert aber mit dem Quellcode der quasi das gleiche macht nicht.
Naja hauptsache es funktioniert!
Vielen danke für eure Hilfe!