Nyelv

DbDataAdapter.FillSchema Metódus

Definíció

Hozzáad egy sablont DataTable egyhez DataSet , és konfigurálja a sémát úgy, hogy az megfeleljen az adatforrásban lévőnek.

Túlterhelések

Name Description
FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)

Hozzáad egy értéket DataTable a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásnak a megadott SchemaTypealapján.

FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)

A megadott DataTable séma konfigurálása a megadott SchemaTypeparancssztring és CommandBehavior értékek alapján.

FillSchema(DataSet, SchemaType, String)

Hozzáad egy értéket DataTable a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásban megadott SchemaType és DataTable.

FillSchema(DataTable, SchemaType)

A megadott séma konfigurálása a megadott DataTableSchemaTypealapján.

FillSchema(DataSet, SchemaType)

Hozzáad egy DataTable "Table" nevű táblát a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásnak a megadott SchemaTypealapján.

FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)

Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs

Hozzáad egy értéket DataTable a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásnak a megadott SchemaTypealapján.

protected:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::Data::IDbCommand ^ command, System::String ^ srcTable, System::Data::CommandBehavior behavior);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, System.Data.IDbCommand command, string srcTable, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, System.Data.IDbCommand command, string srcTable, System.Data.CommandBehavior behavior);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * System.Data.IDbCommand * string * System.Data.CommandBehavior -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * System.Data.IDbCommand * string * System.Data.CommandBehavior -> System.Data.DataTable[]
Protected Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType, command As IDbCommand, srcTable As String, behavior As CommandBehavior) As DataTable()

Paraméterek

dataSet
DataSet

Az DataSet adatforrás sémájával kitöltendő.

schemaType
SchemaType

Az egyik SchemaType érték.

command
IDbCommand

A sorok adatforrásból való lekérésére használt SQL SELECT utasítás.

srcTable
String

A táblaleképezéshez használandó forrástábla neve.

behavior
CommandBehavior

Az egyik CommandBehavior érték.

Válaszok

Az adatforrásból visszaadott sémaadatokat tartalmazó objektumtömb DataTable .

Attribútumok

Megjegyzések

A FillSchema metódus lekéri a sémát az adatforrásból a SelectCommand. A kapcsolati objektumnak SelectCommand érvényesnek kell lennie, de nem kell megnyitnia. Ha a kapcsolat a hívás előtt FillSchema le van zárva, megnyílik az adatok lekéréséhez, majd bezárul. Ha a kapcsolat még a hívás előtt FillSchema meg van nyitva, az nyitva marad.

Egy FillSchema művelet hozzáad egy DataTable elemet a célhelyhez DataSet. Ezután oszlopokat ad hozzá a DataColumnCollectionDataTablefájlhoz, és konfigurálja a következő DataColumn tulajdonságokat, ha az adatforrásban léteznek:

FillSchema emellett az alábbi szabályok szerint konfigurálja a PrimaryKeyConstraints tulajdonságokat és a tulajdonságokat:

  • Ha egy vagy több elsődleges kulcsoszlopot ad vissza a SelectCommandrendszer, azokat a rendszer a rendszer elsődleges kulcsoszlopaként használja.DataTable

  • Ha a rendszer nem ad vissza elsődleges kulcsoszlopokat, de egyedi oszlopokat, akkor az egyedi oszlopokat használja elsődleges kulcsként, ha és csak akkor, ha az összes egyedi oszlop nemnullálható. Ha bármelyik oszlop null értékű, a rendszer hozzáad egy UniqueConstraint értéket a ConstraintCollection, de a PrimaryKey tulajdonság nincs beállítva.

  • Ha az elsődleges kulcsoszlopokat és az egyedi oszlopokat is visszaadja, a rendszer az elsődleges kulcsoszlopokat használja elsődleges kulcsoszlopként a DataTable.

Vegye figyelembe, hogy az elsődleges kulcsok és az egyedi korlátozások az ConstraintCollection előző szabályok szerint vannak hozzáadva, de más kényszertípusok nem lesznek hozzáadva.

Ha egy egyedi fürtözött index egy SQL Server tábla oszlopán vagy oszlopán van definiálva, és az elsődleges kulcsra vonatkozó korlátozás külön oszlopkészleten van meghatározva, akkor a rendszer visszaadja a fürtözött index oszlopainak nevét. Az elsődleges kulcsoszlopok nevének vagy nevének visszaadásához használjon lekérdezési tippet az elsődleges kulcsindex nevét meghatározó SELECT utasítással. További információ a lekérdezési tippek megadásáról: Hiba (Transact-SQL) – Lekérdezés.

Ha a IDataAdapter rendszer ismétlődő oszlopokkal találkozik egy DataTableelőugró ablak feltöltése során, az "oszlopnév1", "columnname2", "columnname3" stb. mintával létrehozza a következő oszlopok nevét. Ha a bejövő adatok névtelen oszlopokat tartalmaznak, a rendszer az DataSet "Oszlop1", "Oszlop2" stb. minta szerint helyezi el őket. Ha több eredményhalmazt ad hozzá az DataSet egyes eredménykészletekhez, a rendszer egy külön táblába helyezi. A további eredményhalmazok neve úgy van elnevezve, hogy az integrálértékeket hozzáfűzi a megadott táblanévhez (például "Táblázat", "Table1", "Table2" stb.). Ha az alkalmazás oszlop- és táblaneveket használ, győződjön meg arról, hogy nincsenek ütközések ezekkel az elnevezési mintákkal.

A FillSchema metódus olyan forgatókönyveket támogat, amelyekben több DataSetDataTable objektum szerepel, amelyek neve csak esetenként különbözik. Ilyen helyzetekben FillSchema kis- és nagybetűket megkülönböztető összehasonlítást végez a megfelelő tábla megkereséséhez, és új táblát hoz létre, ha nincs pontos egyezés. Ezt a viselkedést az alábbi C#-kód szemlélteti.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.FillSchema(dataset, "aaa"); // Fills the schema of "aaa", which already exists in the DataSet.
adapter.FillSchema(dataset, "Aaa"); // Adds a new table called "Aaa".

Ha FillSchema a rendszer meghívja, és csak DataSet egy olyan nevet DataTable tartalmaz, amelynek a neve csak esetenként különbözik, az DataTable frissül. Ebben a forgatókönyvben az összehasonlítás érzéketlen a kis- és nagybetűk között. Ezt a viselkedést az alábbi C#-kód szemlélteti.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.FillSchema(dataset, "AAA"); // Fills the schema of table "aaa" because only one similarly named table is in the DataSet.

FillSchema nem ad vissza sorokat. Fill A metódussal sorokat adhat hozzá egy DataTable.

Note

Több eredményt adó kötegelt SQL-utasítások kezelésekor az OLE DB-hez készült .NET-keretrendszer Data Provider FillSchema implementációja csak az első eredmény sémaadatait kéri le. Ha több találat sémaadatait szeretné lekérniFill, használja MissingSchemaAction a AddWithKey következőt: .

A FillSchema használatakor a SQL Server .NET-keretrendszer Data Provider hozzáfűz egy FOR BROWSE záradékot a végrehajtott utasításhoz. A felhasználónak tisztában kell lennie a lehetséges mellékhatásokkal, például a SET FMTONLY ON utasításokkal való beavatkozással. További információ: SET FMTONLY (Transact-SQL).

Megjegyzések az öröklőkhöz

A FillSchema(DataSet, SchemaType) metódus ezen implementációja védett, és egy .NET-keretrendszer adatszolgáltatója általi használatra lett kialakítva.

Lásd még

A következőre érvényes:

FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)

Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs

A megadott DataTable séma konfigurálása a megadott SchemaTypeparancssztring és CommandBehavior értékek alapján.

protected:
 virtual System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
protected virtual System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from command) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDbCommand * System.Data.CommandBehavior -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDbCommand * System.Data.CommandBehavior -> System.Data.DataTable
Protected Overridable Function FillSchema (dataTable As DataTable, schemaType As SchemaType, command As IDbCommand, behavior As CommandBehavior) As DataTable

Paraméterek

dataTable
DataTable

Az DataTable adatforrás sémájával kitöltendő.

schemaType
SchemaType

Az egyik SchemaType érték.

command
IDbCommand

A sorok adatforrásból való lekérésére használt SQL SELECT utasítás.

behavior
CommandBehavior

Az egyik CommandBehavior érték.

Válaszok

DataTable Az adatforrásból visszaadott sémaadatokat tartalmazó objektum.

Attribútumok

Megjegyzések

A FillSchema metódus lekéri a sémát az adatforrásból a SelectCommand. A kapcsolati objektumnak SelectCommand érvényesnek kell lennie, de nem kell megnyitnia. Ha a kapcsolat a hívás előtt FillSchema le van zárva, megnyílik az adatok lekéréséhez, majd bezárul. Ha a kapcsolat még a hívás előtt FillSchema meg van nyitva, az nyitva marad.

Egy FillSchema művelet hozzáad egy DataTable elemet a célhelyhez DataSet. Ezután oszlopokat ad hozzá a DataColumnCollectionDataTablefájlhoz, és konfigurálja a következő DataColumn tulajdonságokat, ha az adatforrásban léteznek:

FillSchema emellett az alábbi szabályok szerint konfigurálja a PrimaryKeyConstraints tulajdonságokat és a tulajdonságokat:

  • Ha egy vagy több elsődleges kulcsoszlopot ad vissza a SelectCommandrendszer, azokat a rendszer a rendszer elsődleges kulcsoszlopaként használja.DataTable

  • Ha a rendszer nem ad vissza elsődleges kulcsoszlopokat, de egyedi oszlopokat, akkor az egyedi oszlopokat használja elsődleges kulcsként, ha és csak akkor, ha az összes egyedi oszlop nemnullálható. Ha bármelyik oszlop null értékű, a rendszer hozzáad egy UniqueConstraint értéket a ConstraintCollection, de a PrimaryKey tulajdonság nincs beállítva.

  • Ha az elsődleges kulcsoszlopokat és az egyedi oszlopokat is visszaadja, a rendszer az elsődleges kulcsoszlopokat használja elsődleges kulcsoszlopként a DataTable.

Vegye figyelembe, hogy az elsődleges kulcsok és az egyedi korlátozások az ConstraintCollection előző szabályok szerint vannak hozzáadva, de más kényszertípusok nem lesznek hozzáadva.

Ha egy egyedi fürtözött index egy SQL Server tábla oszlopán vagy oszlopán van definiálva, és az elsődleges kulcsra vonatkozó korlátozás külön oszlopkészleten van meghatározva, akkor a rendszer visszaadja a fürtözött index oszlopainak nevét. Az elsődleges kulcsoszlopok nevének vagy nevének visszaadásához használjon lekérdezési tippet az elsődleges kulcsindex nevét meghatározó SELECT utasítással. További információ a lekérdezési tippek megadásáról: Hiba (Transact-SQL) – Lekérdezés.

Ha a IDataAdapter rendszer ismétlődő oszlopokkal találkozik egy DataTableelőugró ablak feltöltése során, az "oszlopnév1", "columnname2", "columnname3" stb. mintával létrehozza a következő oszlopok nevét. Ha a bejövő adatok névtelen oszlopokat tartalmaznak, a rendszer az DataSet "Oszlop1", "Oszlop2" stb. minta szerint helyezi el őket. Ha több eredményhalmazt ad hozzá az DataSet egyes eredménykészletekhez, a rendszer egy külön táblába helyezi. A további eredményhalmazok neve úgy van elnevezve, hogy az integrálértékeket hozzáfűzi a megadott táblanévhez (például "Táblázat", "Table1", "Table2" stb.). Ha az alkalmazás oszlop- és táblaneveket használ, győződjön meg arról, hogy nincsenek ütközések ezekkel az elnevezési mintákkal.

FillSchema nem ad vissza sorokat. Fill A metódussal sorokat adhat hozzá egy DataTable.

Note

Több eredményt adó kötegelt SQL-utasítások kezelésekor az OLE DB-hez készült .NET-keretrendszer Data Provider FillSchema implementációja csak az első eredmény sémaadatait kéri le. Ha több találat sémaadatait szeretné lekérniFill, használja MissingSchemaAction a AddWithKey következőt: .

A FillSchema használatakor a SQL Server .NET-keretrendszer Data Provider hozzáfűz egy FOR BROWSE záradékot a végrehajtott utasításhoz. A felhasználónak tisztában kell lennie a lehetséges mellékhatásokkal, például a SET FMTONLY ON utasításokkal való beavatkozással. További információ: SET FMTONLY (Transact-SQL).

Megjegyzések az öröklőkhöz

A FillSchema(DataSet, SchemaType) metódus ezen implementációja védett, és egy .NET-keretrendszer adatszolgáltatója általi használatra lett kialakítva.

Lásd még

A következőre érvényes:

FillSchema(DataSet, SchemaType, String)

Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs

Hozzáad egy értéket DataTable a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásban megadott SchemaType és DataTable.

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::String ^ srcTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable);
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType, srcTable As String) As DataTable()

Paraméterek

dataSet
DataSet

A DataSet a séma beszúrásához.

schemaType
SchemaType

SchemaType A séma beszúrását meghatározó értékek egyike.

srcTable
String

A táblaleképezéshez használandó forrástábla neve.

Válaszok

Hivatkozás a .-hoz DataTable hozzáadott objektumok gyűjteményére DataSet.

Attribútumok

Kivételek

Nem található forrástábla, amelyből lekérheti a sémát.

Példák

Az alábbi példa a származtatott osztályt használja a SqlDataAdaptersémával való kitöltéshez DataSet , és visszaad egy DataSet.

public static DataSet GetCustomerData(string dataSetName,
    string connectionString)
{
    DataSet dataSet = new DataSet(dataSetName);

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter(
            "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);

        DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
        mapping.ColumnMappings.Add("CompanyName", "Name");
        mapping.ColumnMappings.Add("ContactName", "Contact");

        connection.Open();

        adapter.FillSchema(dataSet, SchemaType.Source, "Customers");
        adapter.Fill(dataSet);

        return dataSet;
    }
}
Private Function GetCustomerData(ByVal dataSetName As String, _
    ByVal connectionString As String) As DataSet

    Dim dataSet As New DataSet(dataSetName)

    Using connection As SqlConnection = New SqlConnection(connectionString)

        Dim adapter As New SqlDataAdapter( _
           "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
           connection)

        Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
           "Table", "Customers")
        mapping.ColumnMappings.Add("CompanyName", "Name")
        mapping.ColumnMappings.Add("ContactName", "Contact")

        connection.Open()

        adapter.FillSchema(dataSet, SchemaType.Source, "Customers")
        adapter.Fill(dataSet)
        Return dataSet
    End Using
End Function

Megjegyzések

Ez a metódus lekéri a sémaadatokat az adatforrásból a SelectCommand.

Egy FillSchema művelet hozzáad egy DataTable elemet a célhelyhez DataSet. Ezután oszlopokat ad hozzá a DataColumnCollectionDataTablefájlhoz, és konfigurálja a következő DataColumn tulajdonságokat, ha az adatforrásban léteznek:

FillSchema emellett az alábbi szabályok szerint konfigurálja a PrimaryKeyConstraints tulajdonságokat és a tulajdonságokat:

  • Ha egy vagy több elsődleges kulcsoszlopot ad vissza a SelectCommandrendszer, azokat a rendszer a rendszer elsődleges kulcsoszlopaként használja.DataTable

  • Ha a rendszer nem ad vissza elsődleges kulcsoszlopokat, de egyedi oszlopokat, akkor az egyedi oszlopokat használja elsődleges kulcsként, ha és csak akkor, ha az összes egyedi oszlop nemnullálható. Ha bármelyik oszlop null értékű, a rendszer hozzáad egy UniqueConstraint értéket a ConstraintCollection, de a PrimaryKey tulajdonság nincs beállítva.

  • Ha az elsődleges kulcsoszlopokat és az egyedi oszlopokat is visszaadja, a rendszer az elsődleges kulcsoszlopokat használja elsődleges kulcsoszlopként a DataTable.

Vegye figyelembe, hogy az elsődleges kulcsok és az egyedi korlátozások az ConstraintCollection előző szabályok szerint vannak hozzáadva, de más kényszertípusok nem lesznek hozzáadva.

Ha egy egyedi fürtözött index egy SQL Server tábla oszlopán vagy oszlopán van definiálva, és az elsődleges kulcsra vonatkozó korlátozás külön oszlopkészleten van meghatározva, akkor a rendszer visszaadja a fürtözött index oszlopainak nevét. Az elsődleges kulcsoszlopok nevének vagy nevének visszaadásához használjon lekérdezési tippet az elsődleges kulcsindex nevét meghatározó SELECT utasítással. További információ a lekérdezési tippek megadásáról: Hiba (Transact-SQL) – Lekérdezés.

Az elsődleges kulcsinformációk Fill segítségével megkeresheti és lecserélheti azokat a sorokat, amelyeknek a kulcsoszlopai megegyeznek. Ha nem ez a kívánt viselkedés, használja Fill sémaadatok kérése nélkül.

Ha a DbDataAdapter rendszer ismétlődő oszlopokkal találkozik egy DataTableelőugró ablak feltöltése során, az "oszlopnév1", "columnname2", "columnname3" stb. mintával létrehozza a következő oszlopok nevét. Ha a bejövő adatok névtelen oszlopokat tartalmaznak, a rendszer az DataSet "Oszlop1", "Oszlop2" stb. minta szerint helyezi el őket. Ha több eredményhalmazt ad hozzá az DataSet egyes eredménykészletekhez, a rendszer egy külön táblába helyezi. A további eredményhalmazok neve úgy van elnevezve, hogy az integrálértékeket hozzáfűzi a megadott táblanévhez (például "Táblázat", "Table1", "Table2" stb.). Ha az alkalmazás oszlop- és táblaneveket használ, győződjön meg arról, hogy nincsenek ütközések ezekkel az elnevezési mintákkal.

A FillSchema metódus olyan forgatókönyveket támogat, amelyekben több DataSetDataTable objektum szerepel, amelyek neve csak esetenként különbözik. Ilyen helyzetekben FillSchema kis- és nagybetűket megkülönböztető összehasonlítást végez a megfelelő tábla megkereséséhez, és új táblát hoz létre, ha nincs pontos egyezés. Ezt a viselkedést az alábbi C#-kód szemlélteti.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.FillSchema(dataset, "aaa"); // Fills the schema of "aaa", which already exists in the DataSet.
adapter.FillSchema(dataset, "Aaa"); // Adds a new table called "Aaa".

Ha FillSchema a rendszer meghívja, és csak DataSet egy olyan nevet DataTable tartalmaz, amelynek a neve csak esetenként különbözik, az DataTable frissül. Ebben a forgatókönyvben az összehasonlítás érzéketlen a kis- és nagybetűk között. Ezt a viselkedést az alábbi C#-kód szemlélteti.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.FillSchema(dataset, "AAA"); // Fills the schema of table "aaa" because only one similarly named table is in the DataSet.

A IDbConnection kijelölési parancshoz társított objektumnak érvényesnek kell lennie, de nem kell megnyitnia. Ha a rendszer a IDbConnection meghívás előtt FillSchema bezárja a elemet, megnyílik az adatok lekéréséhez, majd bezárul. Ha a kapcsolat a hívás előtt FillSchema meg van nyitva, nyitva marad.

Note

Több eredményt adó kötegelt SQL-utasítások kezelésekor az OLE DB-hez készült .NET-keretrendszer Data Provider FillSchema implementációja csak az első eredmény sémaadatait kéri le. Ha több találat sémaadatait szeretné lekérniFill, használja MissingSchemaAction a AddWithKey következőt: .

A FillSchema használatakor a SQL Server .NET-keretrendszer Data Provider hozzáfűz egy FOR BROWSE záradékot a végrehajtott utasításhoz. A felhasználónak tisztában kell lennie a lehetséges mellékhatásokkal, például a SET FMTONLY ON utasításokkal való beavatkozással. További információ: SET FMTONLY (Transact-SQL).

Lásd még

A következőre érvényes:

FillSchema(DataTable, SchemaType)

Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs

A megadott séma konfigurálása a megadott DataTableSchemaTypealapján.

public:
 System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
public System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
public System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType -> System.Data.DataTable
Public Function FillSchema (dataTable As DataTable, schemaType As SchemaType) As DataTable

Paraméterek

dataTable
DataTable

Az DataTable adatforrás sémájával kitöltendő.

schemaType
SchemaType

Az egyik SchemaType érték.

Válaszok

Az DataTable adatforrásból visszaadott sémaadatokat tartalmazó fájl.

Attribútumok

Példák

Az alábbi példa a származtatott osztályt használja a SqlDataAdaptersémával való kitöltéshez DataSet , és visszaad egy DataTable.

public static DataTable GetCustomerData(string dataSetName,
    string connectionString)
{
    DataTable table = new DataTable(dataSetName);

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter(
            "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);

        DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
        mapping.ColumnMappings.Add("CompanyName", "Name");
        mapping.ColumnMappings.Add("ContactName", "Contact");

        connection.Open();

        adapter.FillSchema(table, SchemaType.Mapped);
        adapter.Fill(table);
        return table;
    }
}
Private Function GetCustomerData(ByVal dataTableName As String, _
    ByVal connectionString As String) As DataTable

    Dim table As New DataTable(dataTableName)

    Using connection As SqlConnection = New SqlConnection(connectionString)

        Dim adapter New SqlDataAdapter( _
           "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
           connection)

        Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
           "Table", "Customers")
        mapping.ColumnMappings.Add("CompanyName", "Name")
        mapping.ColumnMappings.Add("ContactName", "Contact")

        connection.Open()

        adapter.FillSchema(table, SchemaType.Mapped)
        adapter.Fill(table)
        Return table
    End Using
End Function

Megjegyzések

A FillSchema metódus lekéri a sémát az adatforrásból a SelectCommand. A kapcsolati objektumnak SelectCommand érvényesnek kell lennie, de nem kell megnyitnia. Ha a kapcsolat a hívás előtt FillSchema le van zárva, megnyílik az adatok lekéréséhez, majd bezárul. Ha a kapcsolat még a hívás előtt FillSchema meg van nyitva, az nyitva marad.

A FillSchema művelet egy DataTable. Ezután oszlopokat ad hozzá a DataColumnCollectionDataTablefájlhoz, és konfigurálja a következő DataColumn tulajdonságokat, ha az adatforrásban léteznek:

FillSchema emellett az alábbi szabályok szerint konfigurálja a PrimaryKeyConstraints tulajdonságokat és a tulajdonságokat:

  • PrimaryKey Ha már definiálta a DataTabletulajdonságot, vagy az DataTable adatokat tartalmazza, a PrimaryKey tulajdonság nem lesz beállítva.

  • Ha egy vagy több elsődleges kulcsoszlopot ad vissza a SelectCommandrendszer, azokat a rendszer a rendszer elsődleges kulcsoszlopaként használja.DataTable

  • Ha a rendszer nem ad vissza elsődleges kulcsoszlopokat, de egyedi oszlopokat, akkor az egyedi oszlopokat használja elsődleges kulcsként, ha és csak akkor, ha az összes egyedi oszlop nemnullálható. Ha bármelyik oszlop null értékű, a rendszer hozzáad egy UniqueConstraint értéket a ConstraintCollection, de a PrimaryKey tulajdonság nincs beállítva.

  • Ha az elsődleges kulcsoszlopokat és az egyedi oszlopokat is visszaadja, a rendszer az elsődleges kulcsoszlopokat használja elsődleges kulcsoszlopként a DataTable.

Vegye figyelembe, hogy az elsődleges kulcsok és az egyedi korlátozások az ConstraintCollection előző szabályok szerint vannak hozzáadva, de más kényszertípusok nem lesznek hozzáadva. Ez a folyamat több ciklikus utazást igényelhet a kiszolgálóra.

Ha egy egyedi fürtözött index egy SQL Server tábla oszlopán vagy oszlopán van definiálva, és az elsődleges kulcsra vonatkozó korlátozás külön oszlopkészleten van meghatározva, akkor a rendszer visszaadja a fürtözött index oszlopainak nevét. Az elsődleges kulcsoszlopok nevének vagy nevének visszaadásához használjon lekérdezési tippet az elsődleges kulcsindex nevét meghatározó SELECT utasítással. További információ a lekérdezési tippek megadásáról: Hiba (Transact-SQL) – Lekérdezés.

Ha a DbDataAdapter rendszer ismétlődő oszlopokkal találkozik egy DataTableelőugró ablak feltöltése során, az "oszlopnév1", "columnname2", "columnname3" stb. mintával létrehozza a következő oszlopok nevét. Ha a bejövő adatok névtelen oszlopokat tartalmaznak, a rendszer az DataSet "Oszlop1", "Oszlop2" stb. minta szerint helyezi el őket. Ha több eredményhalmazt ad hozzá az DataSet egyes eredménykészletekhez, a rendszer egy külön táblába helyezi. A további eredményhalmazok neve úgy van elnevezve, hogy az integrálértékeket hozzáfűzi a megadott táblanévhez (például "Táblázat", "Table1", "Table2" stb.). Ha az alkalmazás oszlop- és táblaneveket használ, győződjön meg arról, hogy nincsenek ütközések ezekkel az elnevezési mintákkal.

FillSchema nem ad vissza sorokat. Fill A metódussal sorokat adhat hozzá egy DataTable.

Note

Több eredményt adó kötegelt SQL-utasítások kezelésekor az OLE DB-hez készült .NET-keretrendszer Data Provider FillSchema implementációja csak az első eredmény sémaadatait kéri le. Ha több találat sémaadatait szeretné lekérniFill, használja MissingSchemaAction a AddWithKey következőt: .

A FillSchema használatakor a SQL Server .NET-keretrendszer Data Provider hozzáfűz egy FOR BROWSE záradékot a végrehajtott utasításhoz. A felhasználónak tisztában kell lennie a lehetséges mellékhatásokkal, például a SET FMTONLY ON utasításokkal való beavatkozással. További információ: SET FMTONLY (Transact-SQL).

Lásd még

A következőre érvényes:

FillSchema(DataSet, SchemaType)

Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs
Forrás:
DbDataAdapter.cs

Hozzáad egy DataTable "Table" nevű táblát a megadotthoz DataSet , és úgy konfigurálja a sémát, hogy az megfeleljen az adatforrásnak a megadott SchemaTypealapján.

public:
 override cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public override System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
public override System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Overrides Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

Paraméterek

dataSet
DataSet

A DataSet a séma beszúrásához.

schemaType
SchemaType

SchemaType A séma beszúrását meghatározó értékek egyike.

Válaszok

Hivatkozás a .-hoz DataTable hozzáadott objektumok gyűjteményére DataSet.

Megvalósítás

Attribútumok

Példák

Az alábbi példa a származtatott osztályt használja a SqlDataAdaptersémával való kitöltéshez DataSet , és visszaad egy DataSet.

public static DataSet GetCustomerData(string dataSetName,
    string connectionString)
{
    DataSet dataSet = new DataSet(dataSetName);

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter(
            "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);

        DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
        mapping.ColumnMappings.Add("CompanyName", "Name");
        mapping.ColumnMappings.Add("ContactName", "Contact");

        connection.Open();

        adapter.FillSchema(dataSet, SchemaType.Mapped);
        adapter.Fill(dataSet);

        return dataSet;
    }
}
Private Function GetCustomerData(ByVal dataSetName As String, _
    ByVal connectionString As String) As DataSet

    Dim dataSet As New DataSet(dataSetName)

    Using connection As SqlConnection = New SqlConnection(connectionString)
        Dim adapter As New SqlDataAdapter( _
           "SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", _
           connection)

        Dim mapping As DataTableMapping = adapter.TableMappings.Add( _
           "Table", "Customers")
        mapping.ColumnMappings.Add("CompanyName", "Name")
        mapping.ColumnMappings.Add("ContactName", "Contact")

        connection.Open()

        adapter.FillSchema(dataSet, SchemaType.Mapped)
        adapter.Fill(dataSet)
        Return dataSet
    End Using
End Function

Megjegyzések

Ez a metódus lekéri a sémaadatokat az adatforrásból a SelectCommand.

Egy FillSchema művelet hozzáad egy DataTable elemet a célhelyhez DataSet. Ezután oszlopokat ad hozzá a DataColumnCollectionDataTablefájlhoz, és konfigurálja a következő DataColumn tulajdonságokat, ha az adatforrásban léteznek:

FillSchema emellett az alábbi szabályok szerint konfigurálja a PrimaryKeyConstraints tulajdonságokat és a tulajdonságokat:

  • Ha egy vagy több elsődleges kulcsoszlopot ad vissza a SelectCommandrendszer, azokat a rendszer a rendszer elsődleges kulcsoszlopaként használja.DataTable

  • Ha a rendszer nem ad vissza elsődleges kulcsoszlopokat, de egyedi oszlopokat, akkor az egyedi oszlopokat használja elsődleges kulcsként, ha és csak akkor, ha az összes egyedi oszlop nemnullálható. Ha bármelyik oszlop null értékű, a rendszer hozzáad egy UniqueConstraint értéket a ConstraintCollection, de a PrimaryKey tulajdonság nincs beállítva.

  • Ha az elsődleges kulcsoszlopokat és az egyedi oszlopokat is visszaadja, a rendszer az elsődleges kulcsoszlopokat használja elsődleges kulcsoszlopként a DataTable.

Vegye figyelembe, hogy az elsődleges kulcsok és az egyedi korlátozások az ConstraintCollection előző szabályok szerint vannak hozzáadva, de más kényszertípusok nem lesznek hozzáadva.

Ha egy egyedi fürtözött index egy SQL Server tábla oszlopán vagy oszlopán van definiálva, és az elsődleges kulcsra vonatkozó korlátozás külön oszlopkészleten van meghatározva, akkor a rendszer visszaadja a fürtözött index oszlopainak nevét. Az elsődleges kulcsoszlopok nevének vagy nevének visszaadásához használjon lekérdezési tippet az elsődleges kulcsindex nevét meghatározó SELECT utasítással. További információ a lekérdezési tippek megadásáról: Hiba (Transact-SQL) – Lekérdezés.

Az elsődleges kulcsinformációk Fill segítségével megkeresheti és lecserélheti azokat a sorokat, amelyeknek a kulcsoszlopai megegyeznek. Ha nem ez a kívánt viselkedés, használja Fill sémaadatok kérése nélkül.

Ha a IDataAdapter rendszer ismétlődő oszlopokkal találkozik egy DataTableelőugró ablak feltöltése során, az "oszlopnév1", "columnname2", "columnname3" stb. mintával létrehozza a következő oszlopok nevét. Ha a bejövő adatok névtelen oszlopokat tartalmaznak, a rendszer az DataSet "Oszlop1", "Oszlop2" stb. minta szerint helyezi el őket. Ha több eredményhalmazt ad hozzá az DataSet egyes eredménykészletekhez, a rendszer egy külön táblába helyezi. A további eredményhalmazok neve úgy van elnevezve, hogy az integrálértékeket hozzáfűzi a megadott táblanévhez (például "Táblázat", "Table1", "Table2" stb.). Ha az alkalmazás oszlop- és táblaneveket használ, győződjön meg arról, hogy nincsenek ütközések ezekkel az elnevezési mintákkal.

A IDbConnection kijelölési parancshoz társított objektumnak érvényesnek kell lennie, de nem kell megnyitnia. Ha a rendszer a IDbConnection meghívás előtt FillSchema bezárja a elemet, megnyílik az adatok lekéréséhez, majd bezárul. Ha a kapcsolat a hívás előtt FillSchema meg van nyitva, nyitva marad.

Note

Több eredményt adó kötegelt SQL-utasítások kezelésekor az OLE DB-hez készült .NET-keretrendszer Data Provider FillSchema implementációja csak az első eredmény sémaadatait kéri le. Ha több találat sémaadatait szeretné lekérniFill, használja MissingSchemaAction a AddWithKey következőt: .

A FillSchema használatakor a SQL Server .NET-keretrendszer Data Provider hozzáfűz egy FOR BROWSE záradékot a végrehajtott utasításhoz. A felhasználónak tisztában kell lennie a lehetséges mellékhatásokkal, például a SET FMTONLY ON utasításokkal való beavatkozással. További információ: SET FMTONLY (Transact-SQL).

Lásd még

A következőre érvényes: