# Modifying dataset vs. modifying row from adapter **Category:** [Epicor ERP 10](https://www.epiusers.help/c/e10/5) **Created:** 2016-12-29 15:43 UTC **Views:** 915 **Replies:** 2 **URL:** https://www.epiusers.help/t/modifying-dataset-vs-modifying-row-from-adapter/36735 --- ## Post #1 by @Aaron_Moreng Hi all, Sorry if this is off topic, but when using adapters, one can reference the row and/or the dataset of the adapter. Traditionally, I've always worked with a datarow from the adapter, but I have read others code that utilizes the dataset. Example: `DataRow poRow = adapterPO.POData.POHeader.Rows[0];` VS PODataSet POData = adapterPO.POData; PODataSet.POHeaderRow poHD = (PODataSet.POHeaderRow)POData.POHeader[0]; Seems to me that they accomplish the same thing in the end, but I'd appreciate any further explanations of this! --- ## Post #2 by @josecgomez PODataSet extends DataSet, just like POHeaderRow extends DataRow. All it is a Typed DataRow / DataSet. They are the exact same thing... You don't have to cast POData.POHeader[0] to POHeaderRow it is already that type. I recommend you use the typed classes because using quoted strings can lead to runtime errors. With the typed data set you can do ```cs adapterPO.POData.POHeader[0].PONum //typed class //vs adapterPO.POData.POHeader.Rows[0]["PONum"] //using the super class of DataRow, requires index access or name access error prone //Both of the above lines are the same in terms of the output of the code, but the first one is much easier to work with ``` --- ## Post #3 by @Aaron_Moreng Awesome, thanks! --- **Canonical:** https://www.epiusers.help/t/modifying-dataset-vs-modifying-row-from-adapter/36735 **Original content:** https://www.epiusers.help/t/modifying-dataset-vs-modifying-row-from-adapter/36735