Vb.net逐行拉入SQL表

Vb.net逐行拉入SQL表,sql,vb.net,Sql,Vb.net,我对使用vb.net和SQL有点陌生,所以我想我会和你们检查一下,看看我所做的是否有意义,或者是否有更好的方法。对于第一步,我需要从两个表中读入所有行,并以代码需要的方式存储数据。首先我要数一数: mysqlCommand = New SQLCommand("SELECT COUNT(*) From TableName") Try SQLConnection.Open() count = myCommand.ExecuteScalar() Catch ex As SqlExcep

我对使用vb.net和SQL有点陌生,所以我想我会和你们检查一下,看看我所做的是否有意义,或者是否有更好的方法。对于第一步,我需要从两个表中读入所有行,并以代码需要的方式存储数据。首先我要数一数:

mysqlCommand = New SQLCommand("SELECT COUNT(*) From TableName")
Try
    SQLConnection.Open()
    count = myCommand.ExecuteScalar()
Catch ex As SqlException

Finally
    SQLConnection.Close()
End Try

Next
现在我只想遍历这些行,但有两个部分让我很为难,首先,我无法找出SELECT语句,它会让我抓取表中的某一行。我在这里看到了这个例子。然而,这只是在SQL中实现的,但我不确定这是否能转化为vb.net调用

其次,在上面的mycommand.ExecuteScalar()中,告诉VB我们希望从中得到一个数字。我相信select语句将返回一个DataRow,但我不知道是哪个Execute()语句告诉脚本应该这样做


提前谢谢。

一个简单的方法是使用一个
数据表,逐行迭代。您可以使用
DataAdapter
来填充它。使用
Using
-语句处置/关闭实现
IDisposable
的对象属性,如连接:

Dim table = New DataTable
Using sqlConnection = New SqlConnection("ConnectionString")
    Using da = New SqlDataAdapter("SELECT Column1, Column2, ColumnX FROM TableName ORDER By Column1", sqlConnection)
        ' you dont need to open/close the connection with a DataAdapter '
        da.Fill(table)
    End Using
End Using
现在,您可以使用循环迭代所有行:

For Each row As DataRow In table.Rows
    Dim col1 As Int32 = row.Field(Of Int32)(0)
    Dim col2 As String = row.Field(Of String)("Column1")
    ' ...' 
Next

或者将该表用作数据绑定控件的数据源。

有更好的方法。从数据库中选择数据并遍历DataTable。为什么要获取计数?如果表格在两次请求之间发生变化,则可能是错误的。施梅尔特先生给了你一条路。另一种是使用SqlDataReader,另一种是使用ORM。如果不知道您正在对数据做什么,很难说更多。