DataSet a XML en ASPX

30/07/2004 - 16:33 por José Salazar | Informe spam
Reciban un cordial saludo,

Quisiera saber cuál es la mejor forma de escribir el contenido de un DataSet
en una página ASPX que me devolvería un documento XML, actualmente estoy
haciento esto:

...
System.IO.StringWriter SW=new System.IO.StringWriter();
ds.WriteXml(SW); /*Se asume que el DataSet ya contiene los datos*/
Response.ContentType="text/xml";
Response.Write(SW.ToString());
...

Esto aparentemente funciona bien. Pero me preguntaba si no habia una forma
más directa de pasar el contenido del DataSet a la página ASPX sin tener que
crear el StringWriter, es decir, si la página ya tenia su propio objeto
Writer, cualquiera que sea. Además, no estoy seguro si el método
StringWriter.ToString() funcionará para todos los casos y que pudiera usarse
con seguridad para este propósito.

Agradeceré cualquier comentario, sugerencia, corrección o información
general acerca de este tema.

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Franco Figún
30/07/2004 - 16:46 | Informe spam
Espero te sirva, es basico, pero te puede dar una idea:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="c#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
String strConnection, strSQL;
DataSet objDataSet = new DataSet();
OleDbConnection objConnection = null;
OleDbDataAdapter objAdapter = null;

strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; ";
strConnection += "Data Source=" + Server.MapPath("newagenda.mdb");
strSQL = "SELECT * FROM newagenda order by nombre;";

objConnection = new OleDbConnection(strConnection);
objAdapter = new OleDbDataAdapter(strSQL, objConnection);
objAdapter.Fill(objDataSet, "newagenda");
objDataSet.WriteXml(Server.MapPath("newagenda.xml"));
Response.Write("<a href='newagenda.xml'>View XML file</a>");
}
</script>

FF
www.francofigun.com.ar
www.microsofties.com.ar
Yahoo MSN:

"José Salazar" wrote in message
news:#
Reciban un cordial saludo,

Quisiera saber cuál es la mejor forma de escribir el contenido de un


DataSet
en una página ASPX que me devolvería un documento XML, actualmente estoy
haciento esto:

...
System.IO.StringWriter SW=new System.IO.StringWriter();
ds.WriteXml(SW); /*Se asume que el DataSet ya contiene los datos*/
Response.ContentType="text/xml";
Response.Write(SW.ToString());
...

Esto aparentemente funciona bien. Pero me preguntaba si no habia una forma
más directa de pasar el contenido del DataSet a la página ASPX sin tener


que
crear el StringWriter, es decir, si la página ya tenia su propio objeto
Writer, cualquiera que sea. Además, no estoy seguro si el método
StringWriter.ToString() funcionará para todos los casos y que pudiera


usarse
con seguridad para este propósito.

Agradeceré cualquier comentario, sugerencia, corrección o información
general acerca de este tema.

Muchas gracias


Respuesta Responder a este mensaje
#2 José Salazar
30/07/2004 - 17:13 | Informe spam
Agradezco mucho tu respuesta.

Sin embargo, si entendí bien el ejemplo que me proporcionas, creo que es
justo lo que estoy tratando de evitar: tener que escribir el xml generado
por el DataSet en un archivo.
Me gustaría que el xml generado por el DataSet se escribiera directamente
sobre la página aspx la cual será enviada al cliente como una página .aspx
pero con contenido xml. El código que puse en el mensaje original hace eso,
lo que me gustaría saber es si es la forma correcta y más eficiente de
hacerlo.

De nuevo muchas gracias y saludos

"Franco Figún" escribió en el mensaje
news:%
Espero te sirva, es basico, pero te puede dar una idea:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="c#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
String strConnection, strSQL;
DataSet objDataSet = new DataSet();
OleDbConnection objConnection = null;
OleDbDataAdapter objAdapter = null;

strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; ";
strConnection += "Data Source=" + Server.MapPath("newagenda.mdb");
strSQL = "SELECT * FROM newagenda order by nombre;";

objConnection = new OleDbConnection(strConnection);
objAdapter = new OleDbDataAdapter(strSQL, objConnection);
objAdapter.Fill(objDataSet, "newagenda");
objDataSet.WriteXml(Server.MapPath("newagenda.xml"));
Response.Write("<a href='newagenda.xml'>View XML file</a>");
}
</script>

FF
www.francofigun.com.ar
www.microsofties.com.ar
Yahoo MSN:

"José Salazar" wrote in message
news:#
> Reciban un cordial saludo,
>
> Quisiera saber cuál es la mejor forma de escribir el contenido de un
DataSet
> en una página ASPX que me devolvería un documento XML, actualmente estoy
> haciento esto:
>
> ...
> System.IO.StringWriter SW=new System.IO.StringWriter();
> ds.WriteXml(SW); /*Se asume que el DataSet ya contiene los


datos*/
> Response.ContentType="text/xml";
> Response.Write(SW.ToString());
> ...
>
> Esto aparentemente funciona bien. Pero me preguntaba si no habia una


forma
> más directa de pasar el contenido del DataSet a la página ASPX sin tener
que
> crear el StringWriter, es decir, si la página ya tenia su propio objeto
> Writer, cualquiera que sea. Además, no estoy seguro si el método
> StringWriter.ToString() funcionará para todos los casos y que pudiera
usarse
> con seguridad para este propósito.
>
> Agradeceré cualquier comentario, sugerencia, corrección o información
> general acerca de este tema.
>
> Muchas gracias
>
>


Respuesta Responder a este mensaje
#3 Franco Figún
30/07/2004 - 18:03 | Informe spam
Ah, ok, entonces fue un error mio de interpretacion...

FF
www.francofigun.com.ar
www.microsofties.com.ar
Yahoo MSN:
"José Salazar" wrote in message
news:
Agradezco mucho tu respuesta.

Sin embargo, si entendí bien el ejemplo que me proporcionas, creo que es
justo lo que estoy tratando de evitar: tener que escribir el xml generado
por el DataSet en un archivo.
Me gustaría que el xml generado por el DataSet se escribiera directamente
sobre la página aspx la cual será enviada al cliente como una página .aspx
pero con contenido xml. El código que puse en el mensaje original hace


eso,
lo que me gustaría saber es si es la forma correcta y más eficiente de
hacerlo.

De nuevo muchas gracias y saludos

"Franco Figún" escribió en el mensaje
news:%
> Espero te sirva, es basico, pero te puede dar una idea:
>
> <%@ Import Namespace="System.Data" %>
> <%@ Import Namespace="System.Data.OleDb" %>
> <script language="c#" runat="server">
> void Page_Load(Object sender, EventArgs e)
> {
> String strConnection, strSQL;
> DataSet objDataSet = new DataSet();
> OleDbConnection objConnection = null;
> OleDbDataAdapter objAdapter = null;
>
> strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; ";
> strConnection += "Data Source=" + Server.MapPath("newagenda.mdb");
> strSQL = "SELECT * FROM newagenda order by nombre;";
>
> objConnection = new OleDbConnection(strConnection);
> objAdapter = new OleDbDataAdapter(strSQL, objConnection);
> objAdapter.Fill(objDataSet, "newagenda");
> objDataSet.WriteXml(Server.MapPath("newagenda.xml"));
> Response.Write("<a href='newagenda.xml'>View XML file</a>");
> }
> </script>
>
> FF
> www.francofigun.com.ar
> www.microsofties.com.ar
> Yahoo MSN:
>
> "José Salazar" wrote in message
> news:#
> > Reciban un cordial saludo,
> >
> > Quisiera saber cuál es la mejor forma de escribir el contenido de un
> DataSet
> > en una página ASPX que me devolvería un documento XML, actualmente


estoy
> > haciento esto:
> >
> > ...
> > System.IO.StringWriter SW=new System.IO.StringWriter();
> > ds.WriteXml(SW); /*Se asume que el DataSet ya contiene los
datos*/
> > Response.ContentType="text/xml";
> > Response.Write(SW.ToString());
> > ...
> >
> > Esto aparentemente funciona bien. Pero me preguntaba si no habia una
forma
> > más directa de pasar el contenido del DataSet a la página ASPX sin


tener
> que
> > crear el StringWriter, es decir, si la página ya tenia su propio


objeto
> > Writer, cualquiera que sea. Además, no estoy seguro si el método
> > StringWriter.ToString() funcionará para todos los casos y que pudiera
> usarse
> > con seguridad para este propósito.
> >
> > Agradeceré cualquier comentario, sugerencia, corrección o información
> > general acerca de este tema.
> >
> > Muchas gracias
> >
> >
>
>


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