Mario LOBO
Mario LOBO

Reputation: 41

Cannot update row connecting to database via dataset

I'm trying to update a row in a table. If row.FirstMessageId == null then I ask the Messages table for the first message for that specific chat. I then put the Message.id into row.FirstMessageId

But... nothing happens. Database is not updated.

What am I missing? Thank you. :)

using (ChatsTableAdapter chatsTableAdapter = new ChatsTableAdapter())
using (ArchiveDataSet.ChatsDataTable chats = chatsTableAdapter.GetData())
    foreach (ArchiveDataSet.ChatsRow chat in chats)
    {
        if (chat.IsFirstMessageIdNull())
            using (ArchiveDataSet.MessagesDataTable messages =
                new MessagesTableAdapter().GetFirstMessage
                (chat.ChatId))

        if (messages.Rows.Count is 1)
        {
            ArchiveDataSet.MessagesRow message = (ArchiveDataSet.MessagesRow)(messages.Rows[0]);
            chat.FirstMessageId = message.MessageId;
            chat.AcceptChanges();
        }
    }

Upvotes: 0

Views: 37

Answers (1)

Mario LOBO
Mario LOBO

Reputation: 41

Solution found. I update the data via chatsTableAdapter.Update(row).

(never mind the if (messages.Rows.Count is 1), the original database is not 'clean' which means I, for now, better ignore some things)

using (ChatsTableAdapter chatsTableAdapter = new ChatsTableAdapter())
using (ArchiveDataSet.ChatsDataTable chats = chatsTableAdapter.GetData())
    foreach (ArchiveDataSet.ChatsRow chat in chats)
    {
        if (chat.IsFirstMessageIdNull())
            using (ArchiveDataSet.MessagesDataTable messages =
                new MessagesTableAdapter().GetFirstMessage(chat.ChatId))
                if (messages.Rows.Count is 1)
                {
                    ArchiveDataSet.MessagesRow message = (ArchiveDataSet.MessagesRow)(messages.Rows[0]);
                    chat.FirstMessageId = message.MessageId;
                    chatsTableAdapter.Update(chat);
                }
    }

Upvotes: 1

Related Questions