Ciclo while sql server
Sintaxis
DECLARE @count INT = 0; WHILE @count < cnt_total
BEGIN [sentencia] SET @count = @count + 1;
END;
Ejemplo:
DECLARE @count INT = 0;
WHILE @count < 1000
BEGIN
select @count
SET @count = @count + 1;
END;
Tips de desarrollo SQL SERVER, ASP.NET, C#, MVVM, WCF, WPF, XAMARIN, AZURE etc
DECLARE @count INT = 0; WHILE @count < cnt_total
BEGIN [sentencia] SET @count = @count + 1;
END;
Ejemplo:
DECLARE @count INT = 0;
WHILE @count < 1000
BEGIN
select @count
SET @count = @count + 1;
END;
Error al debugear
Managed Debugging Assistant 'ContextSwitchDeadlock' Message=Managed Debugging Assistant 'ContextSwitchDeadlock' : 'The CLR has been unable to transition from COM context 0x8e0158 to COM context 0x8dffe8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.'
Debug > Windows > Exception Settings
Puede cargar un archivo DataTable
directamente desde un lector de datos utilizando el Load()
método que acepta un archivo IDataReader
.
var dataReader = cmd.ExecuteReader();
var dataTable = new DataTable();
dataTable.Load(dataReader);
o
var dataTable = new System.Data.DataTable(); var dt = new System.Data.DataTable();
SqlDataReader dr;
dr = cmd.ExecuteReader();
if (dr.Read())
{
dataTable.Load(dr);
dt = dataTable;
}
Para poder ver los proyectos de reportes en VS 2019 es necesario instalar el siguiente complemento.
Extensions/ Manage Extensions
CLASE DE OBJETO SELECCIONADO
public class ItemsSourcesModel : ModelBase
{
string itemDisplay;
string itemnId;
public string ItemDisplay
{
get { return itemDisplay; }
set
{
itemDisplay = value;
OnPropertyChanged();
}
}
public string ItemnId
{
get { return itemnId; }
set
{
itemnId = value;
OnPropertyChanged();
}
}
}
// VIEW MODEL Selected Item
public ItemsSourcesModel SelectedItemPicker1
{
get { return _selectedItemPicker1; }
set
{
_selectedItemPicker1 = value;
OnPropertyChanged("SelectedItemPicker1");
}
}
ASIGNACION DE VALOR
ItemsSourcesModel
itemSelect = new ItemsSourcesModel();
itemSelect.ItemnId
= “1”;
itemSelect.ItemDisplay
= “Valor 1”;
SelectedItemPicker1 = itemSelect;
Para Solucionar el problema es necesario buscar la clase o interfaz y agregar un modificador de acceso público
Con el lanzamiento estable de Chrome 80 este mes, Chrome comenzará a aplicar un nuevo sistema de clasificación de cookies seguro por defecto, tratando las cookies que no tienen un valor de SameSite declarado como las cookies de SameSite = Lax . Solo cookies configuradas como SameSite = None; Secure estará disponible en contextos de terceros, siempre que se acceda a ellos desde conexiones seguras.
Antecedentes.
Las Cookies es uno de los métodos para agregar y mantener de forma persistentes variables de estado para sitios web. Durante los años las capacidades han crecido y evolucionado, dejando en las plataformas algunas cuestiones problemáticas de legado. Para resolver esto, en los navegadores de internet (Chrome, Firefox y Edge) están realizando cambios en su comportamiento para reforzar los elementos por defecto para conservar la privacidad.
Cambios al comportamiento por default sin SameSite Strict
En los nuevos cambios de seguridad de los navegadores establecen el valor Lax a la variable SameSite, esto normalmente es omitido por los desarrolladores. La introducción del atributo SameSite en una cookie, provee tres diferentes formas de controlar el comportamiento:
Strict.
Con este valor en la cookie solo se podría enviar en el contexto del dominio que las genera (first-party), es decir, la cookie solo podría ser enviado si el sitio para la cookie coincide con el sitio actual. No envía ninguna cookie en las peticiones que se realizan desde sitios diferentes a donde se originaron. • Set-Cookie: promo_shown=1; SameSite=Strict
Lax (Default).
Con valor Lax(relajado) las cookies no se envían, solo si el usuario selecciona cualquier otro enlace del sitio las cookies pueden enviarse. • Set-Cookie: promo_shown=1; SameSite=Lax
None.
Las cookies pueden ser enviadas en todos los contextos, lo que significa que puedes usar este valor para comunicar claramente que quieres intencionalmente que las cookies sean enviadas en contexto de dominios externos (third-party) • Set-Cookie: promo_shown=1; SameSite=Lax Agregando la directiva Secure al final de la declaración de la cookie, significa que requiere un contexto de seguridad. Set-Cookie: widget_session=abc123; SameSite=None; Secure
Solución - Configuración
La solución puede estar orientada a definir las propiedades de seguridad a nivel web.config de cada aplicación o configurar el URL Rewrite desde el IIS a nivel Sitio o a nivel raíz del IIS, este último fue el que utilizamos ya que se hereda la configuración a todos los sitios y aplicaciones internas del servidor. El primer paso es seleccionar la opción URL Rewrite de la lista de características del servidor web:
Sobre la configuración general de iis:
Dentro de la vista de URL Rewrite seleccionamos la opción View Server Variables
Adicionamos una nueva variable del servidor nombrada RESPONSE_Set-Cookie:
Regresamos a la vista de reglas dando click en la opción "Back to Rules", agregamos una nueva regla seleccionando la opción Add Rule(s) de tipo Outbound rules en blanco:
Proporcionamos las siguientes características de la regla:
Por ultimo se recomienda reiniciar el iis