Compilation Error
Description: An error occurred during the compilation of a resource required
to service this request. Please review the following specific error details
and modify your source code appropriately.
Compiler Error Message: CS0117: 'System.Data.Da taTable' does not contain a
definition for 'WriteXml'
Source Error:
Line 55: da.Fill(Datos, "Datos");
Line 56: Session["Tabla"]=ListaTabla.Sel ectedItem.Text;
Line 57:
Datos.Tables["Datos"].WriteXml(Serve r.MapPath(Sessi on["Tabla"] + ".xml"));
Line 58: DataGrid1.DataS ource=Datos;
Line 59: DataGrid1.DataB ind();
Source File: c:\inetpub\wwwr oot\PDM\excel\D efault.aspx Line: 57
The code:
<%@ Page Language="c#" Debug="true" %>
<%@ import Namespace="Syst em.Data" %>
<%@ import Namespace="Syst em.Xml" %>
<%@ import Namespace="Syst em.Xml.Xsl" %>
<%@ import Namespace="Syst em.Data.SqlClie nt" %>
<HTML>
<HEAD>
<script runat="server">
//definimos como publica la conexion a la base de datos
public SqlConnection conDB = new SqlConnection() ;
public void Page_Load(Objec t sender, EventArgs E) {
//la primera vez que carga la pagina obtenemos la lista de Bases de
datos
if (Page.IsPostBac k == false) {
conDB.Connectio nString = "data
source=10.195.1 7.7;database=de vnew;uid=cupryk ma;pwd=ehs123";
/*con "sp_databas es" obtenemos la lista de bases de datos en una
instancia de SQL Server
para MySQL se usa "show databases" */
SqlDataAdapter da = new SqlDataAdapter( "sp_databas es", conDB);
DataSet ds = new DataSet();
da.Fill(ds, "DBases");
ListaDB.DataSou rce=ds;
//filtramos los datos y solo asociamos la columna "DATABASE_N AME" al
dropdownlist
ListaDB.DataTex tField="DATABAS E_NAME";
ListaDB.DataBin d();
}
}
void DropDownList1_S electedIndexCha nged(object sender, EventArgs e) {
//como ya el usuario selecciono una base de datos activamos el boton
de consultas
Consultar.Enabl ed=true;
conDB.Connectio nString = "data source=10.195.1 7.7;initial catalog="
+ ListaDB.Selecte dItem.Text + ";integrate d security=SSPI;p ersist security
info=False;uid= cuprykma;pwd=eh s123;packet size=4096";
/*con la cosulta "select * from SYSOBJECTS where TYPE = 'U' and name
<> 'dtproperties' order by NAME"
obtenemos todas las tablas de usuario que hay en una base de datos.
en MySQL usamos "show tables" y en Oracle Usamos "select * from
tab;"*/
SqlDataAdapter da = new SqlDataAdapter( "select * from SYSOBJECTS
where TYPE = 'U' and name <> 'dtproperties' order by NAME", conDB);
DataSet ds = new DataSet();
da.Fill(ds, "Tablas");
ListaTabla.Data Source=ds;
//filtramos de nuevo, ahora solo nos intersa la columna "name" con
los nombres de la tablas
ListaTabla.Data TextField="name ";
ListaTabla.Data Bind();
//aparecemos el boton para hacer la conversion a excel
Convertir.Visib le=false;
//y desaparecemos el de consulta
Consultar.Visib le=true;
}
public DataSet Datos = new DataSet();
public void Consultar_Click (object sender, EventArgs e) {
conDB.Connectio nString = "data source=10.195.1 7.7;initial catalog="
+ ListaDB.Selecte dItem.Text + ";integrate d security=SSPI;p ersist security
info=False;uid= cuprykma;pwd=eh s123;packet size=4096";
//traemos los datos de la tabla usando la BD selecionada en
ListaTabla y la tabla seleccionada
SqlDataAdapter da = new SqlDataAdapter( "select * from " +
ListaTabla.Sele ctedItem.Text, conDB);
da.Fill(Datos, "Datos");
Session["Tabla"]=ListaTabla.Sel ectedItem.Text;
Datos.Tables["Datos"].WriteXml(Serve r.MapPath(Sessi on["Tabla"] +
".xml"));
DataGrid1.DataS ource=Datos;
DataGrid1.DataB ind();
Consultar.Visib le=false;
Convertir.Visib le=true;
}
void Button1_Click(o bject sender, EventArgs e) {
Response.Conten tType = "applicatio n/vnd.ms-excel";
Response.Charse t = "";
DataSet ds = new DataSet();
ds.ReadXml(Serv er.MapPath(Sess ion["Tabla"] + ".xml"));
XmlDataDocument xdd = new XmlDataDocument (ds);
XslTransform xt = new XslTransform();
xt.Load(Server. MapPath("Excel. xsl"));
xt.Transform(xd d, null, Response.Output Stream);
Response.End();
}
</script>
</HEAD>
<body>
<form runat="server" ID="Form1">
<asp:HyperLin k id="HyperLink1 " runat="server"
NavigateUrl="Ba ck">Propertie s</asp:HyperLink>
<table cellspacing="3" cellpadding="7" align="center">
<tbody>
<tr>
<td>
Database</td>
<td>
Table</td>
</tr>
<tr>
<td>
<asp:DropDownLi st id="ListaDB"
runat="server" OnSelectedIndex Changed="DropDo wnList1_Selecte dIndexChanged"
AutoPostBack="T rue"></asp:DropDownLis t>
</td>
<td>
<asp:DropDownLi st id="ListaTabla "
runat="server">
<asp:ListItem
Value="(Tablas) ">(Tables)</asp:ListItem>
</asp:DropDownLis t>
</td>
</tr>
<tr>
<td colspan="2">
<div align="center">
<asp:Button id="Consultar"
onclick="Consul tar_Click" runat="server" Text="Consultar "
Enabled="False" ></asp:Button>
<asp:Button id="Convertir"
onclick="Button 1_Click" runat="server" Text="Convert To Excel"
Visible="False" ></asp:Button>
</div>
</td>
</tr>
</tbody>
</table>
<p>
</p>
<p align="center">
<asp:DataGrid id="DataGrid1" runat="server"
BorderStyle="No ne" BorderWidth="1p x" BorderColor="#C C9966"
BackColor="Whit e" CellPadding="4" >
<FooterStyle forecolor="#330 099"
backcolor="#FFF FCC"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="#FFF FCC"
backcolor="#990 000"></HeaderStyle>
<PagerStyle horizontalalign ="Center"
forecolor="#330 099" backcolor="#FFF FCC"></PagerStyle>
<SelectedItemSt yle font-bold="True"
forecolor="#663 399" backcolor="#FFC C66"></SelectedItemSty le>
<ItemStyle forecolor="#330 099"
backcolor="Whit e"></ItemStyle>
</asp:DataGrid>
</p>
</form>
</body>
</HTML>
--
LUIS ESTEBAN VALENCIA
MICROSOFT DCE 3.
MIEMBRO ACTIVO DE ALIANZADEV
http://spaces.msn.com/members/extremed/