Herramienta para hacer pruebas y ejercicios de sentencias SQL en línea

Si no tienes un motor de base de datos a tu disposición y quieres correr algunas instrucciones de SQL, te recomiendo este sitio web:

http://www.sqlfiddle.com/

Puedes seleccionar de distintos manejadores de bases de datos:

image

Después pones las instrucciones para crear tu tabla e insertar algunos registros de prueba y oprimes Build Schema.

Una vez hecho lo anterior tendrás tu base de datos lista y con registros para probar, ahora del lado derecho teclea tu consulta y oprime Run SQL:

image

Y podrás ver los resultados más abajo:

image

Excelente herramienta, puedes oprimir View Sample Fiddle para que la aplicación genere una prueba como la que aparece en las imágenes.

El atributo !important en hojas de estilo CSS

Las hojas de estilo se aplican en cascada, de ahí su nombre en inglés: Cascading Style Sheets.

Esto significa que si tienes dos estilos que modifican a un mismo elemento, siempre se aplicará el que aparezca más abajo, por ejemplo, considera esta hoja de estilos:

.ejemplo
{
   margin-top:5px;
}

.ejemplo
{
   margin-top:10px;
}

Si aplicas el estilo ejemplo a un elemento de tu página, el margen superior será de 10 pixeles, ya que esta definición sobre escribe a la anterior. Esto ocurre frecuentemente si cargas varios archivos .css en una misma página y dos o más de ellos tienen diferentes reglas para un elemento.

Ahora bien, si tu problema es que deseas que se aplique el estilo de arriba, entonces debes utilizar el atributo !important para indicar que la regla no debe ser sobre escrita por ninguna regla siguiente. Hazlo así:

.ejemplo
{
   margin-top:5px !important;
}

.ejemplo
{
   margin-top:10px;
}

No se pudieron habilitar las restricciones. Una o varias filas contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.

Trabajando con una base de datos de SQL Server similar a la siguiente:

der

En un proyecto de ASP.NET tenía mi DAL (archivo xsd) en el cual agregué un TableAdapter con la siguiente consulta:

SELECT
Alumno.IdAlumno,
Alumno.Nombre, Tarea.Concepto
FROM
Alumno INNER JOIN Tarea
ON Alumno.IdAlumno = Tarea.IdAlumno

Al tratar de utilizar los datos en una página ASPX mediante un ObjectDataSource, me aparecía este error:

No se pudieron habilitar las restricciones. Una o varias filas contienen valores que infringen las restricciones NON-NULL, UNIQUE o FOREIGN-KEY.

En inglés:

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints

Nota: Esto ocurre normalmente en consultas con JOINS. Antes de seguir las instrucciones que voy a dar, intenta borrar tu TableAdapter y volverlo a crear, puede ser que hayas modificado el tamaño de algún campo en la base de datos y no lo hayas ajustado en el xsd. Si no se arregló, continúa leyendo.

Investigando, encontré, que si quito la llave Alumno.IdAlumno de la consulta se soluciona el problema, sin embargo no lo puedo hacer porque en este caso específico necesito la llave para pasarla como parámetro en un vínculo a otra página.

Como podrás ver, la llave IdAlumno está tanto en la tabla Alumno (llave primaria), como en Tarea (llave foránea). Para solucionar el problema, utiliza en tu consulta la llave foránea (Tarea.IdAlumno) en vez de la primaria (Alumno.IdAlumno), las dos llevan siempre el mismo valor, y solucionarás el problema, así:

SELECT
Tarea.IdAlumno,
Alumno.Nombre, Tarea.Concepto
FROM
Alumno INNER JOIN Tarea
ON Alumno.IdAlumno = Tarea.IdAlumno

La colección de controles no puede modificarse porque el control contiene bloques de código (por ej. <% ... %>)

Tengo una Web Form basada en un Master Page. La Web Form me marca el siguiente error:

La colección de controles no puede modificarse porque el control contiene bloques de código (por ej. <% … %>)

El problema es que tengo un bloque de código javaScript en mi Web Form, en el cual utilizo la siguiente línea:

$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");

Por eso es que marca el error relacionado con las etiquetas <% ... %>

El código javaScript estaba en el cuerpo de la página, solamente lo debes mover al head y se soluciona el problema. En mi Web Form esto ocurre en un ContentPlaceHolderID, de tal forma que puse el código en esa zona:

<asp:content id="Content1" contentplaceholderid="head" runat="Server">
   <script type="text/javascript">
      //Pon aquí el código que contiene las líneas que usan <% ... %>, como la que sigue<
      //$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");
   </script>
</asp:content> 

Listo, con eso queda solucionado el problema.

BC30002: Type ‘System.Data.Linq.Mapping.DatabaseAttribute’ is not defined.

Si estás utilizando LINQ en tu aplicación de asp.net y te sale este error:

BC30002: Type 'System.Data.Linq.Mapping.DatabaseAttribute' is not defined.

Es probable que no hayas hecho referencia del assembly en el archivo web.config.
Entre el tag assemblies y /assemblies de tu archivo web.config coloca lo siguiente:

<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">

¡Suerte!