Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Luz

[Resolvido] Excluir itens da tabela (sql)

Recommended Posts

boa tarde...

bom, fiz uma aplicação de um web chat para suporte mas estou com um problema... preciso de um código que delete os itens cadastrados na tabela do sql "Messages" quando não tiver nenhum usuario logado... mas não consigo... ja tentei varios códigos mais nenhum funciona...

alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou fazendo uma aplicação de um chat para suporte usando linq to sql e c#, estou tentando fazer com que as mensagens do chat armazenadas no meu banco de dados sejam deletadas quando não tiver nenhum usuario na sala... mas não consigo... eu fiz do seguinte modo:

private void DeleteMessages()

{

db = new LinqChatDataContext();

var deleteMessages = from d in db.Messages

where d.MessageID == Convert.ToInt32(Session["ChatUserID"])

select d;

 

foreach (var d in deleteMessages)

{

if (db.LoggedInUsers == null)

{

db.Messages.DeleteOnSubmit(d);

db.SubmitChanges();

}

}

 

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu comando c# não funciona...

sou iniciante na area e não sei muito bem aonde mecher para arruma-lo...

 

errado eu não creio que o comando esteja, pois o visual studio não acusa nenhum erro... mas creio que alguma coisa que eu coloquei no mesmo esta impedindo o funcionamento... mas não sei o que...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta:

private void DeleteMessages()
    	{
        	var db = new LinqChatDataContext();
        	var deleteMessages = db.Messages.Where(d => d.MessageID == Convert.ToInt32(Session["ChatUserID"]));
        	db.Messages.DeleteAllOnSubmit(d);
        	db.SubmitChanges();
    	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu mudeu meu código e agora esta funcionando... só que ele só funciona se tiver alguem on na sala... e se tiver alguem on não acontece nada... fiz o seguinte código

private void DeleteMessages()

{

LinqChatDataContext db = new LinqChatDataContext();

var logged = (from l in db.LoggedInUsers

where l.UserID == Convert.ToInt32(Session["ChatUserID"])

select l);

if (logged == null)

{

var messages = (from m in db.Messages

where m.RoomID == Convert.ToInt32(lblRoomId.Text)

orderby m.TimeStamp descending

select m);

db.Messages.DeleteAllOnSubmit(messages);

}

db.SubmitChanges();

}

 

quando eu deixo a condição que eu quero que é logged == null nada acontece... mas se eu colocar logged != null apaga tudo sempre que algum usuario entra na sala... e não é o que eu quero...

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei os códigos e troquei o comando DeleteMessages(); do PageLoad pro Logout Event, agora quando o usuario sai do chat as mensagens são deletadas... só que deleta elas mesmo tendo algum usuario online...

 

Edit: Acho que é alguma coisa na condição...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aee consegui!!!!

troquei o userId pelo RoomId e funcionou!!!

agora sempre que não tem usuarios logados as mensagens são apagadas!!!

 

Valeu Ivan e quintelab pela ajuda!!

Abss

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.