vb.net - Visual basic - 函数内的函数作为变量
问题描述
我没有很多使用visual basic的经验,所以请温柔一点。我想制作一个由其他人编写的程序(由于许多原因该人不会继续工作),所以在我到达这段代码之前一切都很好:
Function ExisteProceso02(ByVal CodigoBarra As String) As Boolean
Dim miComando As New SqlCommand
Dim miDataAdapter As New SqlDataAdapter
Dim Table As New DataTable
Dim strSQL As String
strSQL = "Select * From PCT_GuiasDespacho Where CodigoBarra = '" & CodigoBarra & "' And
PreAnalisis = 'SI'"
miComando.CommandText = strSQL
miComando.Connection = miConexion
miDataAdapter.SelectCommand = miComando
miDataAdapter.Fill(Table)
If Table.Rows.Count = 0 Then
ExisteProceso02 = False
Else
ExisteProceso02 = True
End If
miComando.Dispose()
miDataAdapter.Dispose()
Table.Dispose()
End Function
我的问题是这个函数正在为自己分配一个值,并且在代码中的其他任何地方都没有调用它(我使用 go to 定义。)但它似乎正在做某事,我不知道它叫什么这个属性所以我可以得到有关它的信息。
有人可以告诉我这是如何工作的吗?或者至少它是什么?
谢谢你。
解决方案
在使用它们的方法中声明您的数据库对象,以便可以关闭和处置它们。显然,您已经在其他地方声明了连接。Using...End Using
即使出现错误,块也会为您处理。始终使用参数来避免Sql注入等原因。我不得不猜测参数的数据类型。检查您的数据库的类型是否正确。
至于将返回值赋值给函数名,那是旧的vb6语法。它仍然可以工作。当前的语法是使用 Return 关键字,这使其与其他语言保持一致。
由于您只需要计数,因此我调整了 Sql 命令来要求它。然后你可以使用.ExecuteScalar
. Sql Server 还提供 If Exists ,这对于大表可能会更快一些,因为它会在找到匹配项后立即停止查找,而不是扫描整个表。
Private ConStr As String = "Your connection string"
Function ExisteProceso02(ByVal CodigoBarra As String) As Boolean
Dim ReturnCount As Integer
Dim strSQL = "Select Count(*)
From PCT_GuiasDespacho
Where CodigoBarra = @CodigoBarra
And PreAnalisis = 'SI';"
Using miConexion As New SqlConnection(ConStr),
miComando As New SqlCommand(strSQL, miConexion)
miComando.Parameters.Add("@CodigoBarra", SqlDbType.NVarChar).Value = CodigoBarra
miConexion.Open()
ReturnCount = CInt(miComando.ExecuteScalar)
End Using
If ReturnCount = 0 Then
Return False
Else
Return True
End If
End Function
推荐阅读
- g++ - 百胜安装问题
- react-native-ios - 用于 iOS fbsdk 的 React Native 登录按钮
- jenkins - jenkins 管道在 sh 后退出
- python - Selenium chrome webdriver无法在python中定位元素
- visual-studio-code - 即使打开不同文件夹中的文件,VSCode 是否可以始终打开默认文件夹(用于 Ctrl + P 搜索)?
- react-native - FlatList 不会向下滚动到最后
- javascript - 来自正则表达式的 exec 返回 null
- java - 上面许多目录中的 Java 源代码
- html - 将 IMG 元素用于标题徽标或背景图像是否更好,为什么?
- sql - bash 中的简单 sql 脚本失败