Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLAdapter.Update()方法不工作_C#_Sql_Sql Server - Fatal编程技术网

C# SQLAdapter.Update()方法不工作

C# SQLAdapter.Update()方法不工作,c#,sql,sql-server,C#,Sql,Sql Server,我正在使用SQL Server和C,在向SQL Server数据库表添加/更新数据时遇到问题 我有一个数据库和多个表。我需要将某些数据从一个表复制到另一个表,一个我无法将MASTER更改为另一个表的表,一个我已添加到数据库助手中的表 这是我的密码。看起来一切正常,没有错误消息,但没有向目标帮助器表添加/更新数据 首先,您应该删除更改。。。但即使如此,dsHELPER.Tables[0]中的所有行的rowstate==都将保持不变,因此Adapters.Update不会执行任何操作。。。将rows

我正在使用SQL Server和C,在向SQL Server数据库表添加/更新数据时遇到问题

我有一个数据库和多个表。我需要将某些数据从一个表复制到另一个表,一个我无法将MASTER更改为另一个表的表,一个我已添加到数据库助手中的表

这是我的密码。看起来一切正常,没有错误消息,但没有向目标帮助器表添加/更新数据


首先,您应该删除更改。。。但即使如此,dsHELPER.Tables[0]中的所有行的rowstate==都将保持不变,因此Adapters.Update不会执行任何操作。。。将rowstate更改为Added,更新调用将触发Insert语句


您可能必须更改insert语句,以正确的表为目标。。。生成器生成的语句可能会以源表为目标,这不是您想要的,我想

不要调用AcceptChanges。嗨,Michael,我最初没有这个方法,但它仍然不起作用。我添加它只是因为我认为它可能会有所不同。无论哪种方式,数据库都不会更新。既然我知道合并至少是第一次影响/添加多行,为什么Rowstate会保持不变?后续调用将只用于更新对HELPER数据集的任何更改?我可以使用For循环手动设置行状态,但在合并过程中没有实际添加行的情况下,在后续调用中可能会显得过分。合并后是否检查了行状态?还应该检查Adapters.InsertCommand中的sql语句。。。我猜它将插入StrataHelper而不是StrataHelpera…好吧,因此将每行的行状态更改为“SetAdded”已经完成了操作…但我仍然不知道为什么行状态一开始就没有更改??叹气
conn.Open();

//Get the data from the SOURCE table
SqlDataAdapter AdapterSM = new SqlDataAdapter("SELECT lOwnersCorporationID, sPlanNumber FROM OwnersCorporation", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(AdapterSM);
DataSet dsMASTER = new DataSet();
AdapterSM.Fill(dsMASTER, "OwnersCorporation");

//Get the data from the DESTINATION table
SqlDataAdapter AdapterSH = new SqlDataAdapter("SELECT lOwnersCorporationID, sPlanNumber FROM StrataHelper", conn);
SqlCommandBuilder builderSH = new SqlCommandBuilder(AdapterSH);
DataSet dsHELPER = new DataSet();
AdapterSH.Fill(dsHELPER, "StrataHelpera");

DataTable tableMASTER = dsMASTER.Tables["OwnersCorporation"];
DataTable tableHELPER = dsHELPER.Tables["StrataHelpera"];

//Merge the data to the DESTINATION table
tableHELPER.Merge(tableMASTER, true);
tableHELPER.AcceptChanges();
dsHELPER.Tables[0].AcceptChanges();

AdapterSH.DeleteCommand = builderSH.GetDeleteCommand();
AdapterSH.UpdateCommand = builderSH.GetUpdateCommand();
AdapterSH.InsertCommand = builderSH.GetInsertCommand();

//Update DESTINATION table with merged changes
AdapterSH.Update(dsHELPER, "StrataHelpera");
conn.Close();