Cor do item selecionado (em foco) e linha zebrada

07:18 Unknown 0 Comments

Bom, pra variar, perdi um tempo danado tentando deixar a linha selecionada do meu ListView com cor diferente, tentei com vários eventos e não conseguia mudar a cor nem da linha selecionada e nem da linha em foco. Tentei também usar aquele tal de ObjectListView, mas vi que para o que eu precisava, ele era muito complexo. Ok, acho que ninguém quer saber minha história de vida com a ListView, vou direto a solução.

Criei um componente o tipo Listview para facilitar, e nele programei o seguinte:



Imagens do exemplo, utilizando o componente ListViewSBGColor criado com o código acima:






Se tiver dúvidas, pode perguntar via comentário.

Link para download do componente + projeto de exemplo em:
https://bitbucket.org/bitshoogie/listviewsbgcolor/



0 comentários:

C# e MySql - Deadlock found when trying to get lock; try restarting transaction

10:06 Unknown 1 Comments

Gente boa tarde! Eu resolvi a pouco tempo atrás, integrar o software da empresa onde trabalho de SqlServer para MySql, devido a varias vantagens que li sobre o MySql (Incluindo o fato de ser livre). Porém, nessa mudança perdi um tempo medonho tentando descobrir porque dava a seguinte MySqlException na minha aplicação:

Erro 1213 - Deadlock found when trying to get lock; try restarting transaction


Problema:

Eu tenho uma aplicação que está toda hora atualizando uma determinada tabela no banco, e outras tantas aplicações que fazem a leitura da mesma tabela. O que acontece, é que quando você vai dar um UPDATE na tabela, a tabela é trancada, não podendo ser acessada naquele momento, ou seja, eu estava lendo mundo e atualizando muito em um curto intervalo de tempo, e isso causava VARIAS vezes essa maldita exceção..

Até onde eu li, esse tipo de coisa acontece com todos os bancos, não só com o MySql, porém é configurável, eu não tinha esse problema quando usava o SqlServer.

Resolução:

Depois de tentar todo tipo de coisa, e fazer todo tipo de pesquisa, meu boss descobriu que tem uma variável no MySql onde você pode definir se a busca de dados será feita com os dados já comitados, ou seja, não da problema de acesso pois ele ignora o que está sendo comitado no momento em que a tabela está em lock.

Script para alterar a variavel:
SET GLOBAL TX_ISOLATION='READ-UNCOMMITTED';


Esse SCRIPT funciona, só que tem um porém, quando inicia a instancia do MySql, a variavel volta para o valor default, para isso não acontecer deve ser alterada no arquivo MySql.ini ou se você usa o Workbench, vá em Options File/Advanced, selecione a variavel transaction-isolation e mude o valor dela para READ-UNCOMMITED
Ex:

Dessa forma você libera a leitura da tabela mesmo quando ela esta em lock e não se incomoda mais com esses Deadlock do capiroto..

1 comentários: