为什么调用DataTable.Clear()然后DBDataAdapter.Update(DataTable)不清除数据库中的表?

时间:2012-01-05 16:01:41

标签: sql dataadapter sqlcommandbuilder

我尝试使用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);
}

我可以添加新行或修改现有行,并且可以将更改提交到数据库,但是如果我尝试清空表,则对'table'的更改不能提交到数据库,也没有例外被扔了。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

你应该在这一行得到错误:

  

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

这意味着你已经在其他地方捕获了异常,可能是在调用函数的地方,而不是在messege框中显示错误。

另一个原因可能是因为你正在使用像Table,adapter等字样...我的猜测是你可能会超载一些保留字功能。