运营商'&'没有为'string'和'system.guid'类型定义

时间:2014-02-23 23:52:15

标签: sql vb.net

我有一些VB代码试图在函数中执行sql

Public Shared Function getBackgroundInfo(ByVal aID As Guid) As pd_ABC

    Dim SQLCMD As New SqlCommand
    Dim BackgroundInfoDS As New DataSet()

    SQL = "select * from tblABC where ID = '" & aID & "'"

.....

我的ID和aID都是GUID类型, 但是visual studio在ID = '" & aID & "'"的哪里显示错误 我想知道是否有更好的方法来做到这一点?或者我需要使用参数化查询? 谢谢你的建议!

2 个答案:

答案 0 :(得分:4)

"select * from tblABC where ID = '"是一个字符串,aID是一个guid。

aID添加到字符串中时,请使用aID.ToString()

我肯定会推荐您的代码的参数化版本 - 为了安全性,代码质量和一般的良好实践。

答案 1 :(得分:1)

您可以在ToString()实例上调用Guid来获取guid的字符串表示形式:

SQL = "select * from tblABC where ID = '" & aID.ToString() & "'"

回答你的另一个问题

  

或者我是否需要使用参数化查询?

你不需要,但你可能应该这样做。使用参数化查询更安全,更易读。