如何通过 VB.net 中的另一个 GUID 列 select GUID 列?我的 Select 查询不起作用
How to select GUID column by another GUID column in VB.net?My Select query does not work
我是编程新手,有机会在另一个开发人员项目中工作和维护。
该项目是使用 ASP.Net Vb.Net 和 SQl 服务器构建的。
我正在尝试 select 来自 table 的主键 ID(实际上是一个 GUID)。
SQID = Core.DB.GetString("SELECT id FROM SQC WHERE sid = " & sid)
在 Table SQC 中,主键是 id,它是 guid,sid 也是 guid,它是另一个 table.
的主键
我以前的开发人员将代码开发为 select 字符串变量 GetString 函数,其中 GetString 是
Shared Function GetString(ByVal selectQueryText As String, ByVal ParamArray params As SqlParameter()) As String
Dim dt As DataTable = Nothing
Try
dt = GetData(selectQueryText, CommandType.Text, params)
If dt.Rows.Count = 0 Then
Return ""
Else
If TypeOf dt.Rows(0)(0) Is DBNull Then
Return ""
Else
Return CStr(dt.Rows(0)(0))
End If
End If
Finally
If dt IsNot Nothing Then dt.Dispose()
End Try
End Function
当我调试代码时,我的进程进入 GetString 函数,然后从 Get String 转到 GetData 函数
Shared Function GetData(ByVal selectCommandText As String, ByVal selectCommandType As CommandType, ByVal ParamArray params As SqlParameter()) As DataTable
Dim conn As SqlConnection = Nothing
Try
conn = GetOpenSqlConnection()
Return GetData(conn, selectCommandText, selectCommandType, params)
Finally
If conn IsNot Nothing Then conn.Dispose()
End Try
End Function
Shared Function GetData(ByVal conn As SqlConnection, ByVal selectCommandText As String, ByVal selectCommandType As CommandType, ByVal ParamArray params As SqlParameter()) As DataTable
If conn Is Nothing Then Return GetData(selectCommandText, selectCommandType, params)
Dim sa As SqlDataAdapter = Nothing
Try
sa = New SqlDataAdapter(selectCommandText, conn)
sa.SelectCommand.CommandType = selectCommandType
Dim dt As New DataTable
Try
For Each param As SqlParameter In params
sa.SelectCommand.Parameters.Add(param)
Next
sa.Fill(dt)
Return dt
Catch ex As Exception
dt.Dispose()
Throw ex
End Try
Finally
If sa IsNot Nothing Then sa.Dispose()
End Try
End Function
在异常处理的 Try Catch 区域中,代码中断并抛出异常错误。它说 Incorrect syntax near 'a379'。这是 sid (GUID) 的第一个部分。我的意思是 sid 值是 9417A379-6371-432F-9DA5-BCFC46DD95A1
我不知道该如何处理。我想 select 来自 SQC table 的 id 并将其存储在一个变量中。
我正在寻找您的意见和建议。由于我是编程界的新手,请也指出我的错误。
谢谢
看来您的问题可以这样解决:
SQID = Core.DB.GetString("SELECT id FROM SQC WHERE sid = '" & sid & "'")
但您应该知道,这种代码风格对 SQL 注入是开放的,您可能想看看参数化查询的方法(即不要将此项目中的内容视为良好实践) .
我是编程新手,有机会在另一个开发人员项目中工作和维护。
该项目是使用 ASP.Net Vb.Net 和 SQl 服务器构建的。
我正在尝试 select 来自 table 的主键 ID(实际上是一个 GUID)。
SQID = Core.DB.GetString("SELECT id FROM SQC WHERE sid = " & sid)
在 Table SQC 中,主键是 id,它是 guid,sid 也是 guid,它是另一个 table.
的主键我以前的开发人员将代码开发为 select 字符串变量 GetString 函数,其中 GetString 是
Shared Function GetString(ByVal selectQueryText As String, ByVal ParamArray params As SqlParameter()) As String
Dim dt As DataTable = Nothing
Try
dt = GetData(selectQueryText, CommandType.Text, params)
If dt.Rows.Count = 0 Then
Return ""
Else
If TypeOf dt.Rows(0)(0) Is DBNull Then
Return ""
Else
Return CStr(dt.Rows(0)(0))
End If
End If
Finally
If dt IsNot Nothing Then dt.Dispose()
End Try
End Function
当我调试代码时,我的进程进入 GetString 函数,然后从 Get String 转到 GetData 函数
Shared Function GetData(ByVal selectCommandText As String, ByVal selectCommandType As CommandType, ByVal ParamArray params As SqlParameter()) As DataTable
Dim conn As SqlConnection = Nothing
Try
conn = GetOpenSqlConnection()
Return GetData(conn, selectCommandText, selectCommandType, params)
Finally
If conn IsNot Nothing Then conn.Dispose()
End Try
End Function
Shared Function GetData(ByVal conn As SqlConnection, ByVal selectCommandText As String, ByVal selectCommandType As CommandType, ByVal ParamArray params As SqlParameter()) As DataTable
If conn Is Nothing Then Return GetData(selectCommandText, selectCommandType, params)
Dim sa As SqlDataAdapter = Nothing
Try
sa = New SqlDataAdapter(selectCommandText, conn)
sa.SelectCommand.CommandType = selectCommandType
Dim dt As New DataTable
Try
For Each param As SqlParameter In params
sa.SelectCommand.Parameters.Add(param)
Next
sa.Fill(dt)
Return dt
Catch ex As Exception
dt.Dispose()
Throw ex
End Try
Finally
If sa IsNot Nothing Then sa.Dispose()
End Try
End Function
在异常处理的 Try Catch 区域中,代码中断并抛出异常错误。它说 Incorrect syntax near 'a379'。这是 sid (GUID) 的第一个部分。我的意思是 sid 值是 9417A379-6371-432F-9DA5-BCFC46DD95A1
我不知道该如何处理。我想 select 来自 SQC table 的 id 并将其存储在一个变量中。
我正在寻找您的意见和建议。由于我是编程界的新手,请也指出我的错误。
谢谢
看来您的问题可以这样解决:
SQID = Core.DB.GetString("SELECT id FROM SQC WHERE sid = '" & sid & "'")
但您应该知道,这种代码风格对 SQL 注入是开放的,您可能想看看参数化查询的方法(即不要将此项目中的内容视为良好实践) .