using

03/09/2008 - 12:00 von Fred Aurich | Report spam
Hallo,

nochmal ein Verstàndigungsproblem.

In einem Beispielcode wird der Bezug zu einer DB-Verbindung über using
eingeleitet

using (SqlConnection con_SQLVerbindung = new
SqlConnection(connectionString)) {
connection.Open(); // DB-Verbindung
öffnen
DataTable table = connection.GetSchema("Databases"); //
Übersicht über die vorhandenen Datenbanken der DB-Verbindung
DisplayData(table); // Anzeige der
DB-Informationen
connection.Close(); // DB-Verbindung
schliessen
}

Ich möchte den Schema-Abruf in eine separate Funktion auslagern. Deshalb
übergebe ich alle Parameter in der folgenden Form:

Aufruf:

DataTable tab_DB = new DataTable(); // Tabelle der Datenbanken
string[] Filter = new string[0]; // Array der Filterbedingungen

SqlConnection con_SQLVerbindung = new SqlConnection(connectionString);
con_SQLVerbindung.Open();

tab_DB = DBSchema(con_SQLVerbindung, "DB", Filter);
// Datenbank-Schema einlesen

con_SQLVerbindung.Close();

Die Funktion:

private DataTable DBSchema(SqlConnection sqlVerb, string zSchema, string[]
ar_SchemaFilter)
{
DataTable table; // Rückgabe-Tabelle initalisieren
switch (zSchema) // DB-Informationen je nach gewàhlten Schema auslesen
{
case "DB":
if (ar_SchemaFilter.Length > 0) // Parameter übergeben?
{
table = sqlVerb.GetSchema("Databases", ar_SchemaFilter[0]);
} else // wenn keine Parameter übergeben wurden alle
Datenbanken auflisten
{
table = sqlVerb.GetSchema("Databases"); // Übersicht über
die vorhandenen Datenbanken der DB-Verbindung
}
break;
case "Tabelle":
...

VS2005 meldet mir beim Kompilieren aber folgenden Fehler:
Fehler 1 Die beste Übereinstimmung für die überladene
System.Data.Common.DbConnection.GetSchema(string, string[])-Methode hat
einige ungültige Argumente.

Warum erkennt VS die Parameter nicht an? Bzw. wieso wird DbConnection
anstatt SqlConnection verwendet? Ich übergebe doch ein SQLConnection-Objekt?

Ich habe den Parameteraufruf auch schon mit ref ausprobiert, hat aber alles
nichts geholfen. Was ist da falsch???

Fred.
 

Lesen sie die antworten

#1 Frank Dzaebel
03/09/2008 - 12:13 | Warnen spam
Hallo Fred,

private DataTable DBSchema(SqlConnection sqlVerb, string zSchema, string[]
ar_SchemaFilter)
{ [...] table =  sqlVerb.GetSchema("Databases", ar_SchemaFilter[0]);
[...] VS2005 meldet mir beim Kompilieren aber folgenden Fehler:



ar_SchemaFilter[0] ist ein string.
Der Parameter muss aber ein string-Array haben.
Also lass ggf. die "[0]" weg.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen