如何在vb.net中使用.eof OR .bof条件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vb.net中使用.eof OR .bof条件?相关的知识,希望对你有一定的参考价值。
我正在将vb6应用程序转换为vb.net,其中.eof和.bof用作条件。我不知道如何在vb.net中执行这些条件
sSql = "Select * From SPCsetup"
Set dbConn = New ADODB.Connection
Call openDBconn(dbConn)
Set rsConn = dbConn.Execute(sSql)
If rsConn.EOF Or rsConn.BOF Then
bFlag = False
Else
bFlag = True
End If
如您的其他帖子所述,您可以(并且应该)执行以下两项操作之一:
创建自己的记录集类。它可能需要不到30分钟。然后,您可以使用现有代码进行非常小的更改。
而且你真的(但实际上)真的需要与大家分享你将要使用或正在计划使用或正在vb.net中使用的数据对象。 (或ASK你应该使用什么样的数据对象)。
你在使用数据集吗?你在使用数据表吗?你在使用iList吗?
.net有一个GAZZILLION选项,范围从“iList”,还有一堆我没有列在这里。因此,我们对您目前使用的内容一无所知。
我将采取一个大胖的猜测并假设数据表。
假设我们使用数据表,那么您的代码将类似于:
Dim tblHotels As New DataTable
Dim strSQL As string = "select * from tblHotels"
Dim DataReader As New SqlDataAdapter(strSQL, My.Settings.SQLCon1string)
DataReader.Fill(tblHotels)
If tblHotels.Rows.Count = 0 Then
bFlag = False
Else
bFlag = True
End if
所以,代替
If tblHotels.EOF then
然后你会:
If tblHotels.Rows.Count = 0 Then
好吧,首先,ADODB是一个COM组件,所以理论上你可以继续使用它。但它并没有真正推荐,因为虽然它确实有一些啤酒和口哨,但它们并非没有自己的问题。 Ado.Net存在是有原因的,这不仅仅是因为他们喜欢编写新代码来做同样的事情。
其次,如果你使用datareader,那么bof(在第一个记录之前)有些相关,但是如果你使用dataadapter来填充表格则不然。它要么有记录要么没有。如果你想/需要继续使用像记录集这样的东西,那么这将是一个数据读取器...没有BOF,但你真的不需要它。你发现没有任何东西被归还,因为没有任何东西被归还。
sSql = "Select * From SPCsetup"
Using dbConn = New SqlConnection(connctionString)
dbConn.Open()
Using dbCmd = dbConn.CreateCommand()
dbCmd.CommandText = sSql
Using dbReader = dbCmd.ExecuteReader
bFlag = false
While dbReader.Read
bFlag = true
'Do something
End While
End Using
End Using
End Using
以上是关于如何在vb.net中使用.eof OR .bof条件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥极少数情况下 bof/eof 之一对于新的非空记录集是正确的