Archivo de la categoría ‘c#’

Todas las versiones de MySQL Connector .Net para descaga

Aveces necesitamos descargarnos una versión en cuestión, pero MySql la suele quitar de su página (Suele dejar solo las GA).
Aqui teneis un link con todas.
http://download.softagency.net/MySQL/Downloads/Connector-Net/

Tuning de IIS 7.0 con ASP.net

Os dejo unos links muy interesantes sonre tuning de ASP.net sobre IIS 7.0
A mi me han servido de bastante ayuda.
http://madskristensen.net/post/Performance-tuning-tricks-for-ASPNET-and-IIS-7-part-1.aspx

http://madskristensen.net/post/Performance-tuning-tricks-for-ASPNET-and-IIS-7-e28093-part-2.aspx

MySql Connector 6.3.4.0 con ASP.net Framework 4.0

Buenas, pues os dejo por aqui como conectar con MySQL usando MySQL Conector. 6.3.4.0 y ASP.net

También usando provider de membership de este conector.

Todo esto bajo un entorno IIS 7.0 (modo de canalizacion Administrada)

En primer lugar descargar MySQL conector de http://www.mysql.com/downloads/connector/net/

Primer paso , copiar las librerias DLL a nuestra carpeta BIN del proyecto WEB y añadir los ensamblados al WebConfig.

MySql.Data.dll
mysql.web.dll
MySql.Data.Entity.dll

<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="MySql.Web, Version=6.3.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
<add assembly="MySql.Data, Version=6.3.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
</assemblies>
</compilation>

Una vez copiadas debemos de introducir en el web config los DbProviderFactories.

<system.data>
<DbProviderFactories>
<clear />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

Una vez introducido ponemos nuestra cadena de conexion

<connectionStrings>
<remove name="LocalSqlServer" />
<remove name="LocalMySqlServer" />
<add name="MySQLConnectionString" connectionString="server=TuServidor; user id=root;password=pwd;persist security info=True;database=NombreBaseDeDatos"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Si vamos a usar el provider de membership de MySQL Connector debereis añadir estas lineas.

<membership defaultProvider="MySQLMembershipProvider">
<providers>
<clear />
<add connectionStringName="MySQLConnectionString" applautogenerateschema="true" applicationName="TuAplicacion" enablePasswordRetrieval="true" enablePasswordReset="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Clear" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="3" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
<providers>
<clear />
<add connectionStringName="MySQLConnectionString" applicationName="TuAplicacion" name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</roleManager>
<profile enabled="true" defaultProvider="MySqlProfileProvider">
<providers>
<clear />
<add name="MySqlProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider,MySql.Web, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="MySQLConnectionString" applicationName="TuAplicacion" autoGenerateSchema="true" />
</providers>
<properties>
<add allowAnonymous="false" defaultValue="" name="Theme" readOnly="false" serializeAs="ProviderSpecific" type="string" />
</properties>
</profile>

Una vez introducido esto en el web config deberiamos poder realizar una conexion con la Base de datos MySQL, tanto con SQLDatasources como conectando directamente con un SqlCommand por código.
Si os recomiendo leer la documentacion y los bugs de esta versión en la página de MySQL para poder solventar dudas.
Espero que os ayude, a mi me vino muy bien! un saludo!
Documentacion:

http://dev.mysql.com/doc/refman/5.5/en/connector-net-tutorials-asp-roles.html

http://dev.mysql.com/doc/refman/5.5/en/connector-net-tutorials-asp-provider-session-state.html

Limitar los Rows del tablix a N filas por página

O lo que es lo mismo, hacer que salte de página cada N filas.

Me hago eco de este articulo:

  1. Selecciona la fila (las detalle)
  2. Haz click en Add Group ->Parent group (añade un grupo padre a la fila en cuestión)
  3. En el grupo de “Group By expression”, añade esta expresión =Ceiling(RowNumber(Nothing)/20), haz click en OK.
  4.  En Nothing deberias poner el nombre del control donde esta la fila para que pueda hacer el rownumber (En mi caso era “table1″). Ten cuidado por que es case sensitive (Al loro con las mayúsculas).
  5. Ver a “Row Group ->Group Properties”.
  6. Haz click en “Sorting Properties”, quita la expresión para ordenar.
  7. Ve a “Page Breaks” y haz check en “Between Each Instance of Group”.
  8. Si no quieres que se muestre la nueva columna, seleccionala y borrala. Te preguntará si quieres eliminar la columna y la agrupación o solo la columna, selecciona “Only Column”.
  9. Con esto ya tendreis el Tablix limitado a N registros por página.

Mirar también el siguiente artículo. Es interesante sobre todo para que conozcais que se puede hacer con Código dentro de los RDLC.

http://spacefold.com/lisa/post/2010/01/14/Walkthrough-Part-I-Dynamic-interactive-paging-and-another-fierce-look-at-parameters.aspx

Un saludo espero que os haya venido bien.

File Uploads para .net

Aqui os dejo 2 links muy interesantes de code project. Para mi de los mejores uploaders que hay.

Un saludo.

http://www.codeproject.com/KB/webforms/FileUploadWithProgrss.aspx

http://www.codeproject.com/KB/aspnet/FlashUpload.aspx

Eliminar las cabeceras de los .rdlc (Report Viewer)

Aveces se necesitan soluciones un poco drásticas para algunos casos.

Nuestro caso era tener que eliminar todas las cabeceras y footers de los informes, pues bien, o los duplicamos todos quitando las cabeceras o buscamos una manera de poder hacerlo.

Se nos ocurrio editar el esquema del propio rdlc, quitando directamente los headers y los footers.

Ahí va un ejemplo del código. Si necesitais algo más poner un comentario.
Aviso: Esta en el PreRender (ponerlo ahí para poder hacer los cambios)
Un saludo.

protected void EliminarFormato()
{
ReportViewer PageReportViewer = Selector.SelectFirst<ReportViewer>(this.Page);
System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath("/") + PageReportViewer.LocalReport.ReportPath);
System.IO.StreamReader sr;
sr = fi.OpenText();
String xslBlock = sr.ReadToEnd();
sr.Close();
//Eliminar cabecera
while (xslBlock.IndexOf("<PageHeader>") >= 0)
{
xslBlock = xslBlock.Remove(xslBlock.IndexOf("<PageHeader>"), xslBlock.IndexOf("</PageHeader>") - xslBlock.IndexOf("<PageHeader>") + 13);
}
//Eliminar pie de página
while (xslBlock.IndexOf("<PageFooter>") >= 0)
{
xslBlock = xslBlock.Remove(xslBlock.IndexOf("<PageFooter>"), xslBlock.IndexOf("</PageFooter>") - xslBlock.IndexOf("<PageFooter>") + 13);
}
//Eliminar saltos de pagina
while (xslBlock.IndexOf("<PageBreak>") >= 0)
{
xslBlock = xslBlock.Remove(xslBlock.IndexOf("<PageBreak>"), xslBlock.IndexOf("</PageBreak>") - xslBlock.IndexOf("<PageBreak>") + 12);
}
//Eliminar Bookmarks
while (xslBlock.IndexOf("<DocumentMapLabel>") >= 0)
{
xslBlock = xslBlock.Remove(xslBlock.IndexOf("<DocumentMapLabel>"), xslBlock.IndexOf("</DocumentMapLabel>") - xslBlock.IndexOf("<DocumentMapLabel>")+19);
}
System.Text.UTF8Encoding Encoder = new System.Text.UTF8Encoding();
byte[] Bytes = Encoder.GetBytes(xslBlock);
System.IO.MemoryStream ms = new System.IO.MemoryStream(Bytes);
PageReportViewer.LocalReport.ReportPath="";
PageReportViewer.LocalReport.LoadReportDefinition(ms);
ms.Dispose();
}
Volver a arriba