Сохранение данных из списка, привязанного к базе данных в c # - PullRequest
1 голос
/ 18 июля 2011

У меня есть набор данных, привязанный к списку в приложении Windows CE с использованием SQL Server CE.

В наборе данных есть только одна таблица с именем "Codigos" с двумя полями: идентификатором и полем "кода".

Я вручную вставил некоторые данные в свою таблицу и нормально загрузил их в список.

Проблема возникает, когда я пытаюсь добавить новое значение в список и затем сохранить его.

Это код, который я пробовал:

DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow();
newCodigosRow.codigo = "003";
datalogicDataSet.Codigos.Rows.Add(newCodigosRow);

Это загружает новую строку в список со значением «003».

Я связал с событием нажатия на кнопку код для обновления базы данных:

    private void button1_Click(object sender, EventArgs e)
    {
        datalogicDataSet.AcceptChanges();            
    }

Я тоже пробовал это:

    private void button1_Click(object sender, EventArgs e)
    {            
        try
        {
            this.codigosBindingSource.EndEdit();
            this.codigosTableAdapter.Update(this.datalogicDataSet.Codigos);
            MessageBox.Show("Update successful");
        }
        catch (System.Exception ex)
        {
            MessageBox.Show("Update failed");
        }
    }

Но ни один из них не работал, база данных не обновляется.

Есть предложения?

Ответы [ 2 ]

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

Решение в случае, если кто-то обнаружит такую ​​же проблему.

Проблема заключалась в том, что база данных обновлялась правильно, но не на моем компьютере, а только в терминале с Windows CE. Это происходит потому, что приложение копирует базу данных в оконечное устройство Windows CE при запуске через Visual Studio 2008.

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

Когда вы создаете свою производственную программу и устанавливаете ее на устройство с Windows CE, у нее не будет этой проблемы, и она будет корректно обновлять базу данных.

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

Попробуйте:

 private void button1_Click(object sender, EventArgs e)
    {
      DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow();
      newCodigosRow.codigo = "003";
      datalogicDataSet.Codigos.Rows.Add(newCodigosRow);
      datalogicDataSet.AcceptChanges();            
    }
...