ReadXml no funciona con un Dataset con tipo

06/07/2005 - 19:25 por silviall | Informe spam
Hola a todos,

Estoy utilizando VB .NET 2003, he creado un DataSet con tipo con la
herramienta del VB.NET.
Agregar nuevo elemento -->Dataset. Lo he configurado y luego

ds = New DataSet1
ds.ReadXml(GetPathTo("ProductsTable.XML"))

La tabla productos me sale vacía, pero si hago
ds = New DataSet
ds.ReadXml(GetPathTo("ProductsTable.XML"))

Grácias

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo, [MVP VB.NET]
06/07/2005 - 20:25 | Informe spam
Saludos,

verifica que los datos que estas cargando coinciden con el esquema del
DataSet.

en caso de que no coincidan los datos con el esquema del dataSet, dichos
datos seran ignorados, por lo ue puede ser este el problema que indicas.

Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"silviall" escribió en el mensaje
news:
Hola a todos,

Estoy utilizando VB .NET 2003, he creado un DataSet con tipo con la
herramienta del VB.NET.
Agregar nuevo elemento -->Dataset. Lo he configurado y luego

ds = New DataSet1
ds.ReadXml(GetPathTo("ProductsTable.XML"))

La tabla productos me sale vacía, pero si hago
ds = New DataSet
ds.ReadXml(GetPathTo("ProductsTable.XML"))

Grácias

Respuesta Responder a este mensaje
#2 silviall
06/07/2005 - 21:34 | Informe spam
He comprobado la definición del dataset y el fichero xml y no encuentro
ningún error. En el mismo proyecto, que es de prueba de internet, tengo el
dataset que se ha definido y funciona correctament pero yo he hecho uno
aparentemente igual, pero no funciona.
Definción del DataSet
<xs:sequence>
<xs:element name="ProductID" msdata:ReadOnly="true"
msdata:AutoIncrement="true" type="xs:int" />
<xs:element name="ProductName" type="xs:string" />
<xs:element name="SupplierID" type="xs:int" minOccurs="0" />
<xs:element name="CategoryID" type="xs:int" minOccurs="0" />
<xs:element name="QuantityPerUnit" type="xs:string" minOccurs="0" />
<xs:element name="UnitPrice" type="xs:decimal" minOccurs="0" />
<xs:element name="UnitsInStock" type="xs:short" minOccurs="0" />
<xs:element name="UnitsOnOrder" type="xs:short" minOccurs="0" />
<xs:element name="ReorderLevel" type="xs:short" minOccurs="0" />
<xs:element name="Discontinued" type="xs:boolean" minOccurs="0" />
</xs:sequence>

Fichero Xml
<Products>
<ProductID>1</ProductID>
<ProductName>Chai</ProductName>
<SupplierID>1</SupplierID>
<CategoryID>1</CategoryID>
<QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>
<UnitPrice>18</UnitPrice>
<UnitsInStock>39</UnitsInStock>
<UnitsOnOrder>0</UnitsOnOrder>
<ReorderLevel>10</ReorderLevel>
<Discontinued>false</Discontinued>
</Products>
<Products>
<ProductID>2</ProductID>
<ProductName>Chang</ProductName>
<SupplierID>1</SupplierID>
<CategoryID>1</CategoryID>
<QuantityPerUnit>24 - 12 oz bottles</QuantityPerUnit>
<UnitPrice>19</UnitPrice>
<UnitsInStock>17</UnitsInStock>
<UnitsOnOrder>40</UnitsOnOrder>
<ReorderLevel>25</ReorderLevel>
<Discontinued>false</Discontinued>
</Products>

Puede haber algo en el código del dataset? El dataset ha sido creado con el
wizard.
Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo, [MVP VB.NET]
06/07/2005 - 22:03 | Informe spam
Saludos Silvia,

Lamentablemente me indicas todo menos la parte que realmente me interesa :(

Te explico algunos detalles para que los puedas verificar:

* En el archivo de esquemas, busca el primer elemento, aquel que tiene un
atributo IsDataSet="true". El nombre de ese elemento, sera el nombre del
DataSet, por ejemplo, supongamos ProductsDataSet.

* En el elemento raiz del esquema, busca el atributo targetNamespace, por
ejemplo, supongamos: http://tempuri.org/MyProductsDataSet.

Con estos dos datos, el XML de datos deberia estar formado asi:

<ProductsDataSet xmlns="http://tempuri.org/MyProductsDataSet">
<Products>
.
</Products>
</ProductsDataSet>

Pruebalo y avisame si te funciono,


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu



"silviall" escribió en el mensaje
news:
He comprobado la definición del dataset y el fichero xml y no encuentro
ningún error. En el mismo proyecto, que es de prueba de internet, tengo el
dataset que se ha definido y funciona correctament pero yo he hecho uno
aparentemente igual, pero no funciona.
Definción del DataSet
<xs:sequence>
<xs:element name="ProductID" msdata:ReadOnly="true"
msdata:AutoIncrement="true" type="xs:int" />
<xs:element name="ProductName" type="xs:string" />
<xs:element name="SupplierID" type="xs:int" minOccurs="0" />
<xs:element name="CategoryID" type="xs:int" minOccurs="0" />
<xs:element name="QuantityPerUnit" type="xs:string" minOccurs="0" />
<xs:element name="UnitPrice" type="xs:decimal" minOccurs="0" />
<xs:element name="UnitsInStock" type="xs:short" minOccurs="0" />
<xs:element name="UnitsOnOrder" type="xs:short" minOccurs="0" />
<xs:element name="ReorderLevel" type="xs:short" minOccurs="0" />
<xs:element name="Discontinued" type="xs:boolean" minOccurs="0" />
</xs:sequence>

Fichero Xml
<Products>
<ProductID>1</ProductID>
<ProductName>Chai</ProductName>
<SupplierID>1</SupplierID>
<CategoryID>1</CategoryID>
<QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>
<UnitPrice>18</UnitPrice>
<UnitsInStock>39</UnitsInStock>
<UnitsOnOrder>0</UnitsOnOrder>
<ReorderLevel>10</ReorderLevel>
<Discontinued>false</Discontinued>
</Products>
<Products>
<ProductID>2</ProductID>
<ProductName>Chang</ProductName>
<SupplierID>1</SupplierID>
<CategoryID>1</CategoryID>
<QuantityPerUnit>24 - 12 oz bottles</QuantityPerUnit>
<UnitPrice>19</UnitPrice>
<UnitsInStock>17</UnitsInStock>
<UnitsOnOrder>40</UnitsOnOrder>
<ReorderLevel>25</ReorderLevel>
<Discontinued>false</Discontinued>
</Products>

Puede haber algo en el código del dataset? El dataset ha sido creado con
el
wizard.
Respuesta Responder a este mensaje
#4 silviall
07/07/2005 - 09:37 | Informe spam
Saludos Pedro,

Muchas grácias por su ayuda, me ha funcionado correctamente.

Silvia.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida