Vb.net逐行拉入SQL表
我对使用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
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。如果不知道您正在对数据做什么,很难说更多。