C# 使用SqlDataAdapter更新SQL Server数据库

C# 使用SqlDataAdapter更新SQL Server数据库,c#,sql,sql-server,datatable,sqldataadapter,C#,Sql,Sql Server,Datatable,Sqldataadapter,我有一个带有新条目的DataTable,我想将它们添加到现有数据库中 因此,我创建了一个SqlDataAdapter,并用它填充第二个表,然后合并这两个表,并更新数据库,但什么都没有发生,返回值为0,数据库保持不变 这是我的密码: DBManager.DBDestinationConnect(textBox10.Text, textBox9.Text, textBox8.Text, textBox7.Text, ref destinationConnection); //DBManager is

我有一个带有新条目的
DataTable
,我想将它们添加到现有数据库中

因此,我创建了一个
SqlDataAdapter
,并用它填充第二个表,然后合并这两个表,并更新数据库,但什么都没有发生,返回值为0,数据库保持不变

这是我的密码:

DBManager.DBDestinationConnect(textBox10.Text, textBox9.Text, textBox8.Text, textBox7.Text, ref destinationConnection);
//DBManager is a Class, to connect with the database
CategoryAdapterBackup = new SqlDataAdapter("SELECT*FROM " + tablename, destinationConnection);

CategoryTableBackup = new DataTable();
CategoryAdapterBackup.Fill(CategoryTableBackup);
CategoryTableBackup.Merge(SubTable);

//SubTable is the DataTable with the new entries
CategoryAdapterBackup.Update(CategoryTableBackup);

尝试使用
CategoryAdapterBackup.Flush()
或使用
DBManager.Flush()

另外,将
SELECT*FROM
替换为
SELECT*FROM
(带空格)

我在识别您使用此代码的意图时遇到问题。为什么不直接在子表上使用sqlbulkcopy呢?这会将子表的内容附加到目标SQL表。如果您担心重复,则将子表的内容插入数据库中的临时表,并可能使用联接将行插入目标表中不存在的行。

SqlDataAdapter没有刷新的定义,
DBManager
也没有启用,因为它是我的on类,只包含两个函数来连接不同的数据库
sqlbulkcopy
。我只是合并了这两个表,并将差异写入另一个表。通过这种方式,我可以使用
sqlbulkcopy
,而无需重复,也无需在数据库中使用Temp。