Почему я не могу вставить данные в базу данных? - PullRequest
1 голос
/ 27 июля 2011

Я пытаюсь вставить что-то в локальную базу данных, но это не работает ..

    ModelContainer mc;
    public DBController()
    {
        mc = new ModelContainer();

    }

    public void SaveArtikel(string name)
    {
        mc.Connection.Open();
        int id = mc.Produkt.ToList().Last().ID + 1;
        mc.Produkt.AddObject(new Produkt() { ID = id, Name = name });
        mc.SaveChanges();
        mc.Connection.Close();
    }

Вот так я и попробовал.(Это смешано с немецкими словами ..) После этого у меня есть доступ к articel, но его нет в базе данных ..

РЕДАКТИРОВАТЬ: БД является файлом .sdf.

Я щелкнул правой кнопкой мыши на проекте, а затем я нажал "новый элемент".Там я искал "Локальная база данных" (компактный сервер)

Ответы [ 3 ]

3 голосов
/ 27 июля 2011
using (var mc = new ModelContainer())
{
    int id = mc.Produkt.Max(p=>p.ID) + 1;
    mc.Produkt.AddObject(new Produkt() { ID = id, Name = name });
    mc.SaveChanges();
}

Вы можете попробовать что-то подобное выше, также обратите внимание, что я изменил эту строку mc.Produkt.ToList().Last().ID + 1; причина в том, что .ToList () извлекает все записи базы данных в память, а затем ищет следующий доступный Idгде, как я это сделал, выбрана только одна запись.

0 голосов
/ 22 марта 2013

Что может случиться с вами, так это то, что при использовании локального data.mdf свойство имеет значение , всегда делающее копию в вашу папку отладочной корзины, и так происходит каждый разВы отлаживаете и запускаете свой проект.Если вы нацелились на базу данных в папке bin, вы можете увидеть, когда вставляете что-то, что есть, но при повторном запуске проекта таблица очищается.Чтобы постоянно отслеживать ваши данные, вам нужно изменить свойство «копировать в выходной каталог» на database.mdf на «копировать, если новее».

0 голосов
/ 28 июля 2011

Ну, я думаю, что это работало все время ..

Я опубликовал проект, чтобы посмотреть, как он там работает. После многих испытаний это выглядело очень хорошо. Даже после перезагрузки компьютера данные были в БД.

Я не знаю, почему я не вижу данные вручную ... но это не проблема.

Спасибо всем, кто мне помог!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...