Hej Det är mycket riktigt en arbetskopia av hela eller en del av databasen. Tanken var att bara de poster som finns i datasetet skulle uppdateras med samma värde. när du kör dataset.update så uppdateras databasen och berörda poster (ändrade, nya, borttagna) justeras. Övriga poster förblir oberörda. vilka poster som ingår i datasetet bestäms av select satsen Det är inget konstigt med att man behöver loopa igenom varje rad.uppdatera kolumn i ett dataset
Det sägs att man kan betrakta ett DataSet som en minidatabas.
Kan man då enkelt uppdatera en kolumn i ett dataset med en update sats? eller måste man loopa igenom varje post.Sv: uppdatera kolumn i ett dataset
När du jobbar mot den får du som du befarat själv sekvensiellt hitta
en "match" för aktuell post och kolumn. typ: for-loop
Detta brukar inte utgöra nåt större problem, men jag kan hålla med
om att dom (MS) i kommande framework gott kan snygga till syntaxen
för detta. Man kan ju alltid skriva en klass som döljer dessa loopar, men
man förlorar ju då i överskådlighet.
vill du promt slippa detta navigerande helt och hållet, så finns ju sqlclient
och sqlcommand där du låter databasen sköta detta.
Tjosan!Sv:uppdatera kolumn i ett dataset
Men det kan man nog lösa i uppdateringsprocedurenSv: uppdatera kolumn i ett dataset
vid skapandet av dataadaptern samt datasetet. Detta görs smidigast via den wizard som ingår i Visualstudio.
Jag förstår inte riktigt problematiken?, men håller med om att det kan uppfattas som lite osnyggt
att behöva leta träffar sekvensiellt. Sv: uppdatera kolumn i ett dataset
Det måste göras i något skede.
En SQL-databas har inga speciella trolleritricks för sig när många poster skall uppdateras. Givetvis måste DB-hanteraren loopa igenom de poster som skall ändras. Den bara döljer det för dig genom att du har en förenklad programmeringssyntax (SQL) som du kan anropa.
Jag skulle bli ytterst förvånad om det var snabbare att göra UPDATE på 100.000 rader i en SQL-databas jämfört med att loopa igenom raderna i en DataTable (du slipper ju overheaden att du skall gå till databasen). Förutsatt att inga villkor mot index måste användas.
Dataset är och skall vara äkta Disconnected. Därför är det logiskt att den inte stödjer SQL. Om man hade börjat med det, då hade kraven kommit på att stödja diverse specialare i T-SQL osv, och då skulle Dataset inte längre vara frikopplade från databashanteraren.