DbDataAdapter.FillSchema Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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:
AutoIncrement. Be kell állítania és AutoIncrementStep külön kell beállítaniaAutoIncrementSeed.
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
- 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:
AutoIncrement. Be kell állítania és AutoIncrementStep külön kell beállítaniaAutoIncrementSeed.
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
- 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:
AutoIncrement. Be kell állítania és AutoIncrementStep külön kell beállítaniaAutoIncrementSeed.
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
- 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:
AutoIncrement. Be kell állítania és AutoIncrementStep külön kell beállítaniaAutoIncrementSeed.
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 azDataTableadatokat tartalmazza, aPrimaryKeytulajdonsá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.
DataTableHa 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
PrimaryKeytulajdonsá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
- 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:
AutoIncrement. Be kell állítania és AutoIncrementStep külön kell beállítaniaAutoIncrementSeed.
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).