我有一个带有 C# 的 ASP.NET 应用程序。应用程序从 WebServices 获取数据,然后它应该执行以下更新。
sqlQueryString2 = "
UPDATE CI
SET
platform =@platform ,
wstart = @wstart,
wend = @wend,
model = @model,
productDescription = @productDescription,
scanflag = @scanflag
WHERE serial = @serial ";
我意识到当从 Web 服务返回某些值时,我的应用程序似乎在循环。UPDATE 被发送,不提交,然后在需要更新的下一个循环中再次被拾取。
我在 SQL(Server 2005) 中进行了跟踪,这就是服务器的问题:
exec sp_executesql N'
UPDATE CI
SET
platform =@platform ,
wstart = @wstart,
wend = @wend,
model = @model,
productDescription = @productDescription,
scanflag = @scanflag
WHERE
serial = @serial ',N'
@serial nvarchar(11),
@platform nvarchar(23),
@wstart varchar(10),
@wend nvarchar(10),
@model nvarchar(24),
@productDescription nvarchar(35),
@scanflag nvarchar(1)',
@serial=N'H01170RAHS6',
@platform=N'Client Computer - Apple',
@wstart=N'05/09/2011',
@wend=N'05/09/2012',
@model=N'iMac (20-inch, Mid 2009)',
@productDescription=N'IMAC 20"/2.26/2X1GB/160GB/SD/MSE/KB',
@scanflag=N'Y'
我怀疑 productDescription 中的单个双引号可能会抛出它,但我有一段时间试图将其剥离或替换为 (in.)。我认为我在这方面的部分问题是当它被 WebServices 服务器填充时存储的值被转义,因为我可以在手表中将其视为“IMAC 20\”/2.26/2X1GB/160GB/SD/MSE/KB”列表。我尝试用 String.Replace 以及 RegEx 语句替换转义和非转义引号。TBH 我什至不确定我是否在正确的轨道上引用。我只是在看它,因为没有所有返回都包含一个,并且它们不会全部循环。