Array
(
)

C SHARP & SQL SERVER - UPDATE e SELECT AUTOMÁTICO (SE A VARIÁVEL NO C SHARP ALTERAR VALOR)

Thiago Neves
   - 11 dez 2013

Fala Galera, sou iniciante em C# e SQL e gostaria de uma luz, uma dica qual linha devo pesquisar pra solucionar os problemas abaixo:
1º Problema: Como faço para na aplicação C# toda vez que uma variável mudar de valor, seja feito um UPDATE automaticamente na tabela no campo referente aquela variável que mudou de valor na aplicação. tenho pesquisado sobre o TRIGGER mas pelo que eu entendi é disparando um evento quando o valor muda lá no banco e próprio banco que faz essa ação nele mesmo, ou seja, antes eu precisei manualmente lá na aplicação C# fazer esse UPDATE clicando em um botão salvar por exemplo.
2º Problema: Seria o reverso do 1º. Tenho uma outra aplicação totalmente distinta, e faria um SELECT automaticamente assim que um campo é alterado na tabela, enquanto na primeira aplicação eu insiro os dados, a segunda conectada no mesmo banco, faria a leitura automática dessa alteração. A primeira aplicação seria do "Operador" e a segunda aplicação seria apenas um "Monitoramento".
Só pra vocês terem ideia, eu até consegui fazer isso, mas foi uma tremenda "gambiarra" rsrs... até antes de assistir algumas aulas sobre SQL, eu estava usando antes C# com Mysql (não tem nem comparação em um usar SQL server, 1000x melhor que Mysql), fiz o seguinte; usei aquele componente TIMER do C# e cada 10 segundos ele conectava e fazia o UPDATE das variáveis e desconectava, fazia esse procedimento a cada 10 segundos, detalhe que são 19 campos e fazia o UPDATE nos 19 campos, alterando ou não algum deles.. olha que gambiarra., e na segunda aplicação eu fiz o mesmo pro SELECT, a cada 10 segundos conectava fazia o SELECT trazia os valores pras variáveis e desconecta, lia os 19 campos tendo eles sido alterados ou não.
Se alguém puder me uma ideia dessa solução agradeço muito.

Obrigado!

Jefferson Santos
   - 11 dez 2013

Amigo faça uma trigger pegando o UPDATED, ou seja ultimo update feito na tabela.
Procure um pouco sobre INSERTED e UPDATED e vai se esclarecer melhor.
Uma boa dica é acompanhar os videos do Professor Drauzio no Youtube.
Ele fala sobre criação de Trigger pegando o Ultimo Insert e Update realizados na tabela.

Thiago Neves
   - 11 dez 2013

hum.. certo! vou da uma pesquisada na sua dica. Obrigado!

No banco em sI eu entendi a questão da TRIGGER, a minha dúvida maior e lá na aplicação C#, como eu fazer o UPDATE e SELECT pro banco assim que uma variável muda de valor,sem a necessidade de apertar um botão por exemplo. Um exemplo, tenho um TextBox vazio, assim que eu inserir um nome, ele faz o UPDATE automaticamente, e só irar fazer um novo UPDATE se eu alterar o valor que está no TextBox.

Faabiianooc
   - 11 dez 2013

nao existe updated
e sim deleted e inserted.

Lucas Davies
   - 12 dez 2013

Amigo, primeiro você deve avaliar se está utilizando a tecnologia certa pro problema em questão.

Se você quiser por exemplo um relatório sempre atualizado, como um CSV exportado como .XLSX, basta criar uma trigger no campo XPTO de sua tabla XYZ no banco de dados e fazer ela realizar um append em um arquivo do sistema operacional (via T-SQL mesmo).

Se você quer isso para o usuário através de uma telinha bonitinha, ou uma página web, tente adotar o Pattern Observer entre o banco de dados e sua aplicação (vc vai ter de ver a possibilidade de se fazer isso, ou simular algo semelhante...).

Quanto a alterar uma variável em seu sistema de software e modificar em seguida o valor correspondente no banco de dados, não há segredo.
Você pode criar uma propriedade e quando estiver dentro do set { }, realizar o update... mas de qualquer forma imagino que existam outras maneiras de vc fazer isso melhor.

Veja se o Entity Framework já não tem algo pronto relacionado a esta(s) coisa(s).

Abraços!