Foros del Web » Programando para Internet » ASPX (.net) »

Problema com el DataSourceID del GridView!!!

Estas en el tema de Problema com el DataSourceID del GridView!!! en el foro de ASPX (.net) en Foros del Web. Hola!!! Tengo una duda con un GridView, en cuanto a la conexión de una base de datos en SQL, esta es la parte en la ...
  #1 (permalink)  
Antiguo 04/11/2011, 13:33
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 8 meses
Puntos: 1
Información Problema com el DataSourceID del GridView!!!

Hola!!! Tengo una duda con un GridView, en cuanto a la conexión de una base de datos en SQL, esta es la parte en la que tengo duda:

Código ASP:
Ver original
  1. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="reg"
  2.             DataSourceID="SqlDataSource1" Style="position: static">

Qué es el DataSourceID="SqlDataSource1".

Es la referencia a la conexión a la base de datos??... Bueno lo pregunto por que revise como usar el GridView, pero no se cómo hacer para que funcione en mi código y me marca error en esta parte:

DataSourceID de 'GridView1' debe ser el identificador de un control del tipo IDataSource. No se pudo encontrar un identificador 'SqlDataSource1'.

A qué parámetro le tengo que hacer referencia??... Aquí les dejo mi código:

Código ASP:
Ver original
  1. <%@ Page Language="VB" ContentType="text/html" Debug="true" ResponseEncoding="iso-8859-1" %>
  2. <%@ Import Namespace="System.Data" %>
  3. <%@ Import Namespace="System.Data.SqlClient" %>
  4.  
  5. <html>
  6.  
  7. <script language="VB" runat="server">
  8.  
  9.     Sub Page_Load(Sender As Object, E As EventArgs)
  10.  
  11.         Dim MyConnection As SqlConnection = New SqlConnection("server=myhost;database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no")
  12.         Dim MyCommand As SqlCommand = New SqlCommand("SELECT rpe, cl_incid, fe_inic, count(fe_inic) FROM b_asiste WHERE cl_incid='026' AND rpe='76880' GROUP BY rpe, cl_incid, fe_inic", MyConnection)
  13.  
  14.         MyConnection.Open()
  15.  
  16.        Dim dr As SqlDataReader = MyCommand.ExecuteReader()
  17.  
  18.         GridView1.DataSource = dr
  19.         GridView1.DataBind()
  20.  
  21.         MyConnection.Close()
  22.     End Sub
  23.  
  24. </script>
  25.  
  26. <body>
  27.  
  28.   <h3><font face="Verdana">Selección de Trabajadores CFE mayores a 25 años de servicio y con más de 55 años de edad</font></h3>
  29.  
  30. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="reg"
  31.             DataSourceID="SqlDataSource1" Style="position: static">
  32.             <Columns>
  33.                 <asp:BoundField DataField="rpe" HeaderText="rpe" ReadOnly="True" SortExpression="reg" />
  34.                 <asp:BoundField DataField="cl_incid" HeaderText="cl_incid" SortExpression="agricultor" />
  35.                 <asp:BoundField DataField="fe_inic" HeaderText="fe_inic" SortExpression="rut" />
  36.                 <asp:TemplateField HeaderText="Seleccion">
  37.                     <ItemTemplate>
  38.                         <asp:CheckBox ID="CheckBox1" runat="server" Style="position: static" />
  39.                     </ItemTemplate>
  40.                 </asp:TemplateField>
  41.             </Columns>
  42.         </asp:GridView>
  43.  
  44. </body>
  45. </html>
  #2 (permalink)  
Antiguo 04/11/2011, 15:41
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Problema com el DataSourceID del GridView!!!

Bueno, por si a alguien le pasa esto, la solución es la siguiente:

En mi caso hice un DataSourceID primero dentro de mi GridView, así:

Código ASP:
Ver original
  1. <asp:gridview id="CustomersGridView"
  2.        datasourceid="CustomersSource"
  3.        autogeneratecolumns="False"
  4.        autogenerateselectbutton="True"
  5.        allowpaging="True"
  6.        selectedindex="1"
  7.        onselectedindexchanged="CustomersGridView_SelectedIndexChanged"
  8.        onselectedindexchanging="CustomersGridView_SelectedIndexChanging"  
  9.        runat="server" DataKeyNames="b_traba1.rpe">

Y después le hago referencia con un ConnectionString, como yo lo hice manual en el mismo se ponen los parámetros de la conexión =)...


Código ASP:
Ver original
  1. <asp:sqldatasource id="CustomersSource"
  2.         selectcommand="SELECT MAX(b_contra.fe_repro), MAX(c_zonas.nombre), MAX(c_puesto.puesto), MAX(c_a_resp.dscarea), b_traba1.rpe, MAX(b_traba1.nombre), b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, CONVERT (INT,(DATEDIFF (dd, b_traba3.fe_natra, GETDATE()) - DATEDIFF (yy, b_traba3.fe_natra, GETDATE()) / 4.25) / 365) AS Edad, MAX(b_traba1.sexotrab), MAX(c_ubica.ubicapza), MAX(b_traba1.cl_nides), MAX(b_traba1.if_nire2), fe, CASE WHEN fe<GETDATE() THEN GETDATE() ELSE null END AS fepos, CONVERT (INT,(DATEDIFF (dd, GETDATE(), fe) - DATEDIFF (yy, GETDATE(), fe) / 4.25) / 365) AS anyjub FROM (SELECT fe_antre, CASE WHEN b_traba1.sexotrab='M' THEN DATEADD(yy, 30, b_traba1.fe_antre) ELSE DATEADD(yy, 25, b_traba1.fe_antre) END AS fe FROM b_traba1) AS t1, b_traba1, b_traba3, c_zonas, c_a_resp, c_ubica, c_puesto, b_contra WHERE (DATEDIFF(yy, b_traba1.fe_antre, GETDATE()) > 25) AND (DATEDIFF(yy, b_traba3.fe_natra, GETDATE()) > 55) AND b_traba1.cl_sitla IS NULL AND c_zonas.descr=b_traba1.cl_zona AND c_a_resp.area=b_traba1.area AND b_traba1.rpe=b_traba3.rpe AND b_traba1.rpe=b_contra.rpe AND c_puesto.cl_puest=b_contra.cl_puest AND b_traba1.fe_antre=t1.fe_antre AND b_traba1.cl_ubica=c_ubica.cl_ubica GROUP BY b_traba1.rpe, b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, fe"
  3.         connectionstring="DataSourceID=server=myhost;database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no"
  4.         runat="server"/>

Etiquetas: datasource, gridview, sql, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.