我得到「從字符串轉換爲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