una total registros numero mysqli_num_rows mysql_num_rows mostrar contar consulta condicion cantidad agrupados c# asp.net database linq linq-to-sql

c# - total - LinqDataSource-¿Puede limitar la cantidad de registros devueltos?



sql cantidad registros (6)

Puede basar su consulta Linq en un proceso almacenado que solo devuelve x número de filas usando una instrucción TOP. Recuerde que solo porque puede hacer todo su código DB en Linq no significa que deba hacerlo. Además, puede decirle a Linq que use el mismo tipo de devolución para el proceso almacenado que la tabla normal, de modo que toda su vinculación seguirá funcionando, y los resultados de devolución serán del mismo tipo.

Me gustaría utilizar un control LinqDataSource en una página y limitar la cantidad de registros devueltos. Sé que si uso el código, podría hacer algo como esto:

IEnumerable<int> values = Enumerable.Range(0, 10); IEnumerable<int> take3 = values.Take(3);

¿Alguien sabe si algo así es posible con un control LinqDataSource ?

[Actualizar]

Voy a utilizar LinqDataSource con el control ListView , no un GridView o Repeater. El asistente LinqDataSource no proporciona la capacidad de limitar el número de registros devueltos. Las opciones avanzadas solo le permiten habilitar eliminaciones, inserciones y actualizaciones.


Tuve el mismo problema. La forma en que solucioné esto fue usar el evento Selecting en LinqDataSource y devolver el resultado manualmente.

p.ej

protected void lnqRecentOrder_Selecting(object sender, LinqDataSourceSelectEventArgs e) { DataClassesDataContext dx = new DataClassesDataContext(); e.Result = (from o in dx.Orders where o.CustomerID == Int32.Parse(Request.QueryString["CustomerID"]) select o).Take(5); }


y No

No , no puede limitar los resultados dentro del control LinqDataSource. Debido a que Linq usa la ejecución diferida, la expectativa es que el control de la presentación cumpla con los límites del conjunto de registros.

, puedes hacer esto con un control ListView. El truco es usar el control DataPager dentro de LayoutTemplate , así:

<LayoutTemplate> <div id="itemPlaceholder" runat="server" /> <asp:DataPager ID="DataPager1" runat="server" PageSize="3"> </asp:DataPager> </LayoutTemplate>

Normalmente, incluiría controles dentro del DataPager como primero, último, siguiente y anterior. Pero si lo haces vacío, solo verás los tres resultados que deseas.

Espero que esto ayude.


Puede poner evento Selección de LinqDataSource:

protected void ldsLastEntries_Selecting(object sender, LinqDataSourceSelectEventArgs e) { e.Arguments.MaximumRows = 10; }


Sé que si usa un repetidor de paginación o una vista de cuadrícula con el linqdatasource, optimizará automáticamente el número de resultados devueltos, pero también estoy bastante seguro de que en el asistente de fuente de datos puede ir a opciones avanzadas y limitarlo a

SELECT TOP 3 FROM

que debería permitirle hacer lo que necesita


protected void DocsData_Selecting(object sender, LinqDataSourceSelectEventArgs e) { e.Arguments.MaximumRows = 5; }