Почему при вызове DataTable.Clear () затем DBDataAdapter.Update (DataTable) не очищает таблицу в базе данных? - PullRequest
0 голосов
/ 05 января 2012

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

using (SqlConnection connection = new SqlConnection(connectionString))
{
     SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM WebCam", connection);
     DataTable table = new DataTable();
     adapter.Fill(table);
     table.PrimaryKey = new DataColumn[] { table.Columns["Date"] };
     //table.Rows[0]["Date"] = System.DateTime.Now; //It's OK to modify a row 
     table.Clear(); //But it is not working to clear the table
     SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
     adapter.Update(table);
}

Я могу добавить новые строки или изменить существующие строки, иизменения могут быть зафиксированы в базе данных, но если я попытаюсь очистить таблицу, изменение в «таблицу» не может быть зафиксировано в базе данных, также не будет выдано исключение.

Я что-то пропустил?

1 Ответ

0 голосов
/ 05 января 2012

вы должны получить ошибку в этой строке:

table.PrimaryKey = new DataColumn [] {table.Columns ["Date"]};

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

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

...