verwendetes Datenbanksystem: <Microsoft SQL Server Compact>
Hallo,
ich möchte prüfen ob ein bestimmtes Feld in der Tabelle vorhanden ist. Oder erstmal schauen ob die Tabelle vorhanden ist.
Es gibt zwar die unschöne Möglichkeit mit
select feldname from tabelle
aber ich möchte ne schicke Möglichkeit wie das in Java auch Möglich ist. Dort kann ich die Tabellen in einer Datenbank mit einer Schleife durchforsten.
Zu allerletzt wäre es noch genial, wenn ich den Typ des Feldes überprüfen könnte.
Vielen Dank im Vorraus!
Gruß
MacWale
Hallo MacWale
Das kann man doch alles mit ADO.Net machen.
DataSet
DataTable
DataColumn
DataRow und, und, und
Das ganze Zeug dazu findest du unter System.Data ind Hilfe sin auch Beispiele dazu:
Gruss Lothi
Oder so:
select COLUMN_NAME, DATA_TYPE from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='tablename'
Hallo,
das mit dem DataSet hört sich gut an, hab ich soweit umgesetzt, bis auch den Datentyp und die Größe.
Über DataColumn bekommen ich zwar einen Datentyp, aber nicht den SQLDBType! Die Größe über die die Eigenschaft MaxLength bekomme ich auch nicht, es steht immer -1 drin.
Füllen:
string strSQL = "Select * from " + TableName;
SqlCeDataAdapter da = new SqlCeDataAdapter(strSQL, mConn);
da.Fill(mDataSet);
da.TableMappings.Add("Table", aliasTable);
da.Fill(mDataSet);
Dann hole ich mir die Tabelle in eine DataTable und überprüfe die Spalten mit ner foreach
foreach ( DataColumn spalte in myTable.Columns)
{
}
Über spalte.DataType will ich mir nun den Spaltentyp rausholen, aber dort bekomme ich den SQLDBType nicht her.
Wo wird der abgelegt??
Mfg
MacWale
Hallo,
der SqlDbType ist nur eine andere Bezeichnung für den DataColumn.DataType. Das kannst Du in :rtfm: SqlDbType-Enumeration überprüfen.
Zu MaxLength: In der SDK-Doku finde ich keine Details über den SqlCe-DbProvider. Versuche einmal die Schema-Informationen, die zum SqlProvider angeboten werden:
character_maximum_length
Maximale Länge in Zeichen für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.
Das kannst Du in den Select-Befehl von regen einbauen.
Jürgen
Warum benutzt du nicht das, was regen bereits geschrieben hat?
Da musst du nicht mit irgendwelchen DataSets um dich schmeißen und hinterher durch die ganzen DataColumns iterieren. Ein simples Select auf die Information Schemas und du hast alle Informationen die du brauchst.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)