Pregunta

Tengo una página web ASP.NET que necesita hacer una llamada a SQL Server desde el lado del cliente en una sección de script de mi archivo aspx. Estoy llamando a un proceso almacenado que toma un parm. Este sp funciona bien en SQL Server Management Studio devolviendo registros como se esperaba. Cuando intento llenar un conjunto de datos de una llamada a este sp, el ds se llena con cero registros. ¿Hay algo acerca de hacer esta llamada desde el lado del cliente que me falta? Aquí está mi código. Estoy codificando el parm con fines de prueba. PD: tengo esto en un intento de captura y no obtengo errores, solo un conjunto de datos vacío.Thnx.

            string strAssignedTo = "Dwight Shoemaker";



            System.Data.DataSet ds = new System.Data.DataSet();
            System.Data.SqlClient.SqlConnection sqlcon = new System.Data.SqlClient.SqlConnection("Data Source=sql394.mysite4now.com;Initial Catalog=ULS_db1;User ID=uls2008;Password=uls2008");
            System.Data.SqlClient.SqlCommand comand = new System.Data.SqlClient.SqlCommand();
            comand.Connection = sqlcon;
            comand.CommandText = "GetAssignedToReport";
            comand.CommandType = System.Data.CommandType.StoredProcedure;

            comand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@assignedTo", System.Data.SqlDbType.VarChar, 50));
            comand.Parameters["@assignedTo"].Value = strAssignedTo;

            System.Data.SqlClient.SqlDataAdapter sqladp = new System.Data.SqlClient.SqlDataAdapter(comand);

            sqlcon.Open();
            sqladp.Fill(ds);
¿Fue útil?

Solución

He probado tu código y estaba bien. Lo que podría estar mal es esto: Si intenta vincular gridView como: gridView.DataSource= ds; no verás nada He probado su ejemplo, pero en lugar del código anterior, he vinculado el gridView de esta manera: gridView.DataSource = ds.Tables[0]; y veo tus registros Nombre de columna: named_dt, con valores como: 5/7/2005, 5/2/2005. ¿Es esto lo que esperas? Saludos

Otros consejos

No estoy seguro de lo que quiere decir: el código ASP.Net C # siempre se ejecuta en el servidor web, NUNCA en el lado del cliente. Los dos simplemente no se mezclan.


Actualización basada en su comentario:

¿Cómo estás declarando tu " script " ;? Hay dos formas de hacerlo:

  • Un único elemento <script runat="server"> //code here </script>. Esto puede manejar cualquiera de los eventos de la página, incluida la carga de la página.

  • Elementos de script en línea / picaduras de abeja. <% %> etiquetas intercaladas en su marcado. Es un error común pensar que el código en esas etiquetas se ejecuta al cargar la página. Como puede haber deducido de mi uso de la palabra & Quot; concepto erróneo & Quot ;, esto es incorrecto . El código en esas etiquetas no se ejecuta hasta mucho más tarde en el ciclo de vida de la página (PreRender, IIRC).

Tenga en cuenta ese segundo elemento especialmente, ya que este código se ejecuta después de la fase de enlace de datos ya ha finalizado. Si desea usar ese conjunto de datos como la fuente de datos para el control, necesitará DataBind () manualmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top