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

发布于 2024-12-25 02:45:37 字数 795 浏览 2 评论 0原文

我尝试使用 DBDataAdapter.Update 中的代码示例方法清除数据库中的表。

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);
}

我可以添加新行或修改现有行,并且可以将更改提交到数据库,但是如果我尝试清空表,则对“表”的更改无法提交到数据库,而且也不会引发异常。

我错过了什么吗?

I try to use the code sample in DBDataAdapter.Update Method to clear a table in a database.

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);
}

I can add new rows or modify existing rows, and the changes can be committed to the database, but if I try to empty the table, the change to 'table' can not be committed to the database, also, no exception is thrown.

Do I miss something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葮薆情 2025-01-01 02:45:37

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

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

这意味着您在其他地方捕获了异常,可能是从调用函数的地方捕获的异常,并且没有在消息框中显示错误。

另一个原因可能是因为您使用的是表、适配器等单词……我的猜测是您可能会重载某些保留字功能。

u should get error on this line:

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

this would mean that u have catched the exception somewhere else, maybe from where the function is being called, and not showing the error in a messege box.

Another reason might be because you are using words like Table, adapter etc ... my guess is that you might be overloading some reserved words functionalities.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文