Web服务抛出"值' null'无法解析为#Guid'类型。"。错误

时间:2016-11-14 19:17:41

标签: asp.net sql-server web-services ado.net local-storage

我有一个系统,它将来自在线SQL Server数据库的数据存储在本地存储中。使用Web服务上载和下载数据记录。我在我的代码中使用了ADO.Net实体数据模型。

在对一个表的一些上传请求中,例程失败,当我尝试调用它时给出错误消息"值' null'无法解析为#Guid'类型。"。这只是偶尔发生的,我还没有弄清楚如何重复这个问题。我在上个月记录了80次,在那段时间里,例程已成功调用了1200次。

我在此表的数据库记录中有五个字段,它们被定义为uniqueidentifiers。其中两个是“非空”'其他三个是“空”'这是' CREATE TABLE'查询显示此表中的guid字段:

CREATE TABLE [dbo].[Circuit](
[CircuitID] [uniqueidentifier] NOT NULL,
[BoardID] [uniqueidentifier] NOT NULL,
[RCDID] [uniqueidentifier] NULL,
[CircuitMasterID] [uniqueidentifier] NULL,
[DeviceID] [uniqueidentifier] NULL,
 CONSTRAINT [PK_CircuitGuid] PRIMARY KEY NONCLUSTERED 
(
[CircuitID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)

GO

ALTER TABLE [dbo].[Circuit]  WITH CHECK ADD  CONSTRAINT [FK_Circuit_RCD] FOREIGN KEY([RCDID])
REFERENCES [dbo].[RCD] ([RCDID])
GO

ALTER TABLE [dbo].[Circuit] CHECK CONSTRAINT [FK_Circuit_RCD]
GO

ALTER TABLE [dbo].[Circuit]  WITH CHECK ADD  CONSTRAINT [FK_CircuitGuid_Board] FOREIGN KEY([BoardID])
REFERENCES [dbo].[Board] ([BoardID])
GO

ALTER TABLE [dbo].[Circuit] CHECK CONSTRAINT [FK_CircuitGuid_Board]
GO

为此表中的guid字段上传的数据如下所示:

{"__type":"Circuit:#WaspWA","BoardID":"edb5f774-5e5d-490c-860b-73c3419628cf","CircuitID":"e95bbfa3-2af6-49a5-94dd-c98924ec9a62","CircuitMasterID":null,"DeviceID":"daf12fce-675c-46d9-94c4-ed28c63cdf30","RCDID":null}

此记录是在一台上传到在线SQL Server数据库的计算机上创建的,然后下载到另一台计算机上。

我在数据库中有其他类似的表,从不会出现任何问题。只是这张表,我收到的错误信息。这两个字段定义为' NOT NULL' (BoardID和CircuitID)始终包含数据,并且永远不为空。

我有什么明显的遗漏吗?

1 个答案:

答案 0 :(得分:0)

问题是值'null'(一个字符串)被写入我的CircuitMasterID本地副本而不是null。因此,当我尝试将其写入SQL时,它不喜欢它。 SQL错误消息在引号中显示为null但我不确定这是因为它是一个字符串还是因为错误消息将值放在引号中以描绘它。

值'null'已进入CircuitMasterID字段,因为我已将值null写入某些HTML,当它被保存回字段时,它变为'null'。我将数据存储在本地存储中,这不能提供非常好的类型控制。注意自我'必须添加更好的类型控制'。