Обновление базы данных SQL Server CE, привязанной к DataTable - PullRequest
0 голосов
/ 02 апреля 2012

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

Моя программа сохраняет «заметки» в базе данных SQL Server CE. Строка заметки состоит из автоинкремента ID (int), title (string) и текста заметки, который хранится в базе данных как ntext.

У меня есть SqlCeDataAdapter загрузка идентификатора и строк заголовка в DataTable, который привязан к DataGrid, поэтому пользователь может видеть список заметок и выбирать одну. Я не загружаю текстовую строку, потому что предполагаю, что она может быть большой и поэтому ей не нужно постоянно находиться в памяти.

string ConnectionString = "DataSource = " + @"..\\..\\Notes.sdf";
DatabaseConnection = new SqlCeConnection(ConnectionString);
DatabaseConnection.Open();

SqlCeCommand SelectCommand = new SqlCeCommand("SELECT ID, title FROM notes_id", DatabaseConnection);
DatabaseAdapter = new SqlCeDataAdapter(SelectCommand);

NotesDataTable = new DataTable();
DatabaseAdapter.Fill(NotesDataTable);

MainWindowDataView = NotesDataTable.DefaultView;
dataGridNotes.DataContext = MainWindowDataView;

Проблема в том, что я добавляю новую заметку. Должен ли я обновлять DataTable и использовать это для обновления базы данных SQL? Или я должен непосредственно обновлять базу данных SQL и использовать ее для перезагрузки DataTable для ее обновления?

Проблема с обновлением DataTable заключается в том, что у меня нет колонки для текста заметки. И если я вставлю новую строку, я не уверен, как обратиться к этой новой строке, чтобы добавить текстовую ячейку.

Спасибо.

1 Ответ

0 голосов
/ 02 апреля 2012

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

...