我得到“从字符串转换为uniqueidentifier时转换失败。”VB.Net中的错误 - 从字符串转换为uniqueidentifier时转换失败
我使用的VB侧的字符串,并在数据库端GUID .....
是否有一个等效场,我可以在VB端使用,可以用“唯一标识符很好地工作在SQL Server中的“数据类型
我得到“从字符串转换为uniqueidentifier时转换失败。”VB.Net中的错误 - 从字符串转换为uniqueidentifier时转换失败
我使用的VB侧的字符串,并在数据库端GUID .....
是否有一个等效场,我可以在VB端使用,可以用“唯一标识符很好地工作在SQL Server中的“数据类型
如果你已经有自己的价值作为一个字符串,因为你是用手写出你的SQL,你可以CONVERT
它是这样的:
strSql.Append("INSERT INTO tableName ")
strSql.Append("(GUID, ParentObsSetGUID, ChildObsSetGUID, ChildObsItemGUID) ")
strSql.Append(String.Format("VALUES (CONVERT(uniqueidentifier, '{0}'), CONVERT(uniqueidentifier, '{1}'), CONVERT(uniqueidentifier, '{2}'), CONVERT(uniqueidentifier, '{3}'))", parmList.ToArray))
编辑:如果你哈已经一个空字符串,你需要一个新的GUID,然后执行以下操作:
parmList.Add(Guid.NewGuid().ToString())
,而不是
parmList.Add(String.Empty)
如果你宁愿插入NULL
进GUID列,那么你需要改变过去的你的代码位是这样,而不是:
parmList.Add(dtNewGUID.Rows(0).Item(0).ToString)
parmList.Add(dtResultParentGUID.Rows(0).Item(0).ToString)
parmList.Add(dtResultChildGUID.Rows(0).Item(0).ToString)
// remove the line with the empty string parameter
strSql.Append("INSERT INTO tableName ")
strSql.Append("(GUID, ParentObsSetGUID, ChildObsSetGUID, ChildObsItemGUID) ")
strSql.Append(String.Format("VALUES (CONVERT(uniqueidentifier, '{0}'), CONVERT(uniqueidentifier, '{1}'),
CONVERT(uniqueidentifier, '{2}'), NULL)", parmList.ToArray))
// Note the change to the last line. '{3}' becomes NULL.
// Make sure you remove the single quotes
注:您的代码,因为它代表(这个答案)是/是容易受到SQL仁济ction攻击,但这是另一回事。至少有了这个答案,你知道如何将字符串转换为uniqueidentifier
。
下仍然给了我同样的错误:INSERT INTO aic_obs_set_obs_set_obs_item_xref(GUID,ParentObsSetGUID,ChildObsSetGUID,ChildObsItemGUID) VALUES(CONVERT(唯一标识符, 'a1771622-6cd6-49f7-8b26-6befafaf556e'), CONVERT(唯一标识符,“4746da06- e830-42a0-9761-ce60a62ea4d1' ), \t \t CONVERT(唯一标识符, '633ce901-1d4d-479c-b295-232fe7b53295'), \t \t CONVERT(唯一标识符, '')) – User1
尝试此更新。我只是调整了两次;-) –
可能的重复:http://stackoverflow.com/q/13428960/261997 – RThomas
'uniqueidentifier'是'GUID'。 除此之外,不要连接你的查询,但使用sql参数来防止转换或本地化错误,更重要的是防止sql注入。 –
如何在表列是GUID时处理空字符串parmList.Add(String.Empty)? – User1