在这种情况下,我需要在sqlcommandbuilder构建器生成后修改insert命令,并且需要这样做才能在insert之后获得scope_identity。代码的一部分是:
adapterClients = new SqlDataAdapter (cmdClients, connString);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder (adapterClients);
adapterClients.Fill (dataSet, "Clients");
adapterClients.InsertCommand.CommandText += "; select ClientID = SCOPE_IDENTITY()";
adapterClients.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;我在adapterClients.InsertCommand上得到一个空异常。
发布于 2012-01-14 01:00:41
自动生成的插入命令将是构建器的一部分,而不是适配器的一部分。因此,您需要使用以下命令来检索插入命令:
cmdBuilder.GetInsertCommand()因此,您可以使用以下命令(1)将生成的insert命令设置为适配器,然后(2)修改生成的insert命令以包含scope_identity的检索,这取决于您到底要做什么。
adapterClients.InsertCommand = cmdBuilder.GetInsertCommand();
adapterClients.InsertCommand.CommandText += "; select ClientID = SCOPE_IDENTITY()";https://stackoverflow.com/questions/8845309
复制相似问题