Kitöltése adatsora dataadapter ()

Adatbázisba ADO.NET DataSet található memóriában tárolt adat, hogy egy konzisztens relációs programozási modell független adatforrás. DataSet adathalmaz egy komplett adathalmazt tartalmazó táblázatok, korlátok és a táblák közötti kapcsolatok. DataSet adathalmaz független adatforrást azonban DataSet tartalmazhatnak adatokat helyi alkalmazásának, valamint az adatok több adatforrás. Kezelése az interakció meglévő adatforrások felhasználásával DataAdapter.

Töltsük objektum DataAdapter módszert alkalmazzák, hogy töltse DataSet adatbázisba eredményeit eljárás végrehajtását SelectCommand DataAdapter objektumot. Töltsük metódus érvként kell tölteni DataSet adatbázisba. és DataTable vagy objektum nevét DataTable. amelyet meg kell tölteni a sorokat, által visszaadott SelectCommand.

Használata DataAdapter az egész táblára időt vesz igénybe, különösen ha a benne nagy sorok számát. Ez azért történik, mert a hívás az adatbázis, felderítése és az adatfeldolgozás és adatátvitel a kliens hosszú időt vesz igénybe. A lehívás az asztal fölött, hogy az ügyfél azt is eredményezi, blokkolja az összes sort a szerveren. Használhatja a WHERE teljesítmény javítása érdekében. amely jelentősen csökkentheti a visszaadott sorok számát az ügyfélnek. Lehetőség van arra is, hogy csökkentse az adatmennyiség vissza az ügyfélre egy explicit listáját szükséges oszlopokat a SELECT utasításban. Egy másik jó megoldás a problémára az, hogy megkapjuk sorainak csomag (például, amely egy néhány száz sort egy időben), és egyre a következő csomag csak a befejezése után az aktuális feldolgozás.

Töltsük módszer implicit használ DataReader objektumot, hogy visszatérjen a nevét és típusú oszlopok létrehozásához használt táblázatok DataSet. és az adattáblák kitöltési sorok DataSet. Táblák és oszlopok csak létre, ha azok nem léteznek. Ellenkező esetben a kitöltés módszer a meglévő rendszer DataSet. Oszlop típusok jönnek létre, mint a .NET Framework típus platform szerint a táblákat az adattípus leképezések ADO.NET. Elsődleges kulcsok generálása csak akkor, ha létezik az adatforrás és az ingatlan a DataAdapter. MissingSchemaAction számít MissingSchemaAction. AddWithKey. Ha a kitöltés azt észleli, hogy a tábla elsődleges kulcsot, majd az adatokat a DataSet sorok, amelyekben az értékek az elsődleges kulcs oszlopok egybeesik értékeket sorok jutnak vissza az adatforrás felülíródik az adatokat a forrás. Ha az elsődleges kulcs nem található, az adatokat adunk a DataSet asztalra. Töltse ki az összes létező térképezési módszer (lásd. Az összehasonlítás részén DataAdapter, DataTable és DataColumn (ADO.NET)) használunk a töltéshez DataSet.

Ha a SelectCommand visszatér az eredmények JOIN KÜLSŐ, a DataAdapter nem állítja be a PrimaryKey értéket a kapott objektum DataTable. Annak érdekében, hogy megfelelő kimutatására ismétlődő sorokat, a felhasználónak meg kell határozni az elsődleges kulcsot, PrimaryKey. További információért lásd. Lásd meghatározása Elsődleges kulcsok (ADO.NET).

A következő kód példa létrehoz egy példányt a SqlDataAdapter. amely egy SqlConnection kapcsolatot az adatbázis Northwind Microsoft SQL Server adatbázis és feltölti DataTable a DataSet adathalmaz az ügyfelek listáját. SQL és SqlConnection érveket. át a SqlDataAdapter kivitelező. létrehozásához használt ingatlan SelectCommand SqlDataAdapter objektumot.

A kód a példában látható, nem nyitja és zárja Connection kifejezetten. Ha a kapcsolat nem szabad, akkor a Fill módszer implicit megnyitja a kapcsolat. amely felhasználja DataAdapter. Ha Fill megnyitotta a kapcsolat működését, akkor is bezárja, amikor kitöltés befejeződött. Ez egyszerűbbé teszi a kód egy külön művelet, mint például a Kitöltés vagy frissítése. Azonban, amikor végez több műveletet igénylő nyitott kapcsolatot javíthatja az alkalmazások teljesítményét a kifejezetten hívja az Open Connection objektumot. műveletek végrehajtása az adatforrás és az azt követő metódusmeghívást Close Connection objektumot. Meg kell fenntartani a kapcsolatot az adatforrás csak ilyen rövid idő alatt a lehető erőforrások felszabadítása használata más kliens alkalmazások.

Amikor a DataAdapter találja több eredmény határozza meg, létrehoz több táblát a DataSet. Az asztalok nemteljesítési név TableN. A Table0 kezdve «asztal». Ha a tábla neve vezetjük érvként, hogy a kitöltés módszerrel. A táblázatok az alapértelmezett nevet TableNameN a folytonosan növekvő utótag, de mivel «TableName», de nem TableName0.

Használhatja a DataAdapter objektum tetszőleges számú adathalmazok DataSet. Minden DataAdapter objektum használható, hogy töltse ki egy vagy több objektumot DataTable és a felbontás a megfelelő frissítési adatforrás. Tárgyak DataRelation és kényszer adhatunk DataSet helyben, amely lehetővé teszi, hogy összekapcsolja az adatokat eltérő adatforrásokból. Például DataSet tartalmazhat adatokat a Microsoft SQL Server adatait az IBM DB2 adatbázis, ahová a belépés keresztül biztosított OLE DB és az adatok forrását képező XML-adatokat, mint egy patak. Egy vagy több objektum képes kezelni DataAdapter kapcsolatban minden adatforrás.

Alapértelmezett DataSet tárolja az adatokat használva adattípusok a .NET-keretrendszer. A legtöbb alkalmazás, ennek köszönhetően van egy kényelmes módon mutatja információt az adatforrás. Ennek a nézetnek problémát okozhat, ha az adatok típusát a adatforrást használunk az SQL Server típusú decimális vagy numerikus. Adat típus tizedes .NET Framework platform lehetővé teszi, hogy legfeljebb 28 számjeggyel, míg az adatok típusát tizedes SQL Server lehetővé teszi a használatát 38 számjeggyel. Ha a művelet során Fill SqlDataAdapter megállapítja, hogy a pontosság terén tizedes SQL Server több mint 28 karakter, az aktuális sor nem kerül be a DataTable. Ehelyett FillError esemény. amely lehetővé teszi, hogy meghatározza, hogy a veszteség a pontosság fog bekövetkezni, és megteszi a szükséges lépéseket. További információ az esemény FillError cm. Szakaszban Event gépek DataAdapter (ADO.NET). Mert típusú értékek tizedes SQL Server, akkor is használhatja az SqlDataReader objektumot, és hívja a módszer GetSqlDecimal.

Az ADO.NET 2.0, a meghosszabbított támogatás System.Data.SqlTypes a DataSet. További információért lásd. Szakasz SqlTypes és DataSet (ADO.NET).

Hierarchikus készlet sorok vagy szakaszok (DBTYPE_HCHAPTER típusú OLE DB, típusú adChapter ADO), lehet feltöltésére használt tartalmát DataSet. Amikor a OleDbDataAdapter közben Fill működés közben érzékeli oszlopra osztva erre oszlop jön létre DataTable. Ez a táblázat tele van a sorok és oszlopok a szakaszban. Táblázat létre osztott oszlopban van rendelve egy nevet, amely a nevét a szülő tábla nevét és unpartitioned oszlop formájában «ParentTableNameChapteredColumnName». Ha az adathalmaz DataSet már tartalmaz egy táblázatot, amelynek neve megegyezik a neve a törött részt az oszlop, az adat rész tele van az aktuális táblázatot. Ha az aktuális tábla nincs oszlop egybeesik az oszlopot tartalmazott egy fejezetet, hozzáad egy új oszlopot.

Kitöltése előtt a táblákat DataSet szereplő adatokat megosztjuk oszlopok, a szülő és a gyermek táblák hierarchikus sor sorok kapcsolatot teremt hozzáadásával egy egész oszlopot a szülő és a gyermek táblázatokat, amelyben a szülői oszlopban autoincrement és megteremti DataRelation hozzáadjuk a két oszlop táblázatok. Hozzáadott kommunikáció van rendelve egy nevet a neve a szülő tábla és unpartitioned oszlopban «ParentTableNameChapterColumnName».

Felhívjuk figyelmét, hogy csak kötött oszlopot a DataSet. További töltelék adatforrás okozhat az új, sorban a táblázatok helyett a módosítás a meglévő vonalak.

Vegye figyelembe, hogy ha a túlterhelt módszer DataAdapter.Fill. vevő DataTable érvként, csak betöltötte a táblázatban. Az auto-növekmény értéke oszlop még hozzá lehet adni az asztalra, de nem hozhat létre, vagy töltse ki a gyermek asztal, és nem hozhat létre a kapcsolat.

A következő példa a szállító MSDataShape létrehozni unpartitioned oszlop minden ügyfél számára a listát az ügyfelek. Ezt követően a DataSet van az adatok.