1

私はビジュアルベーシックを初めて使用しますが、データテーブルの行をループし、値をテストスクリプトで使用する必要があります。スクリプトは次のとおりです-

Public Function TestMain(ByVal args() As Object) As Object
    StartApp(URL)

    ' HTML Browser '
    Browser_HtmlBrowser(Document_HomePage(),DEFAULT_FLAGS).Maximize()

    Button_AddNewProfilesubmit().Click()

    'here is where the rows would be read and the loop would start'

    Text_Ctl00MainContentProfileNa().Click(AtPoint(6, 13))
    Browser_HtmlBrowser(Document_Http1921685526UserCon(), DEFAULT_FLAGS).InputChars("dataBase_Row_Value")
    Table_HtmlTable_1().Click(AtCell( _
                                    AtRow(AtIndex(0)), _
                                    AtColumn(AtIndex(1))))

    'here is where the loop would end after all rows had been read'

    Return Nothing
End Function

これを達成するためのアイデアがあります。最初にデータベース接続を行い、次にループを作成します-

    Dim pName As String
    Dim datas As DataSet
    Dim datar As DataRow
    Dim oledat As SqlDataAdapter
    oledat = New SqlDataAdapter("SELECT COLUMN FROM DATABASE",ConnectionString)
    oledat.Fill(datas)
    For Each datar In datas.Tables(0).Rows
        pName = datar.Item("PROFILENAME")

        Text_Ctl00MainContentProfileNa().Click(AtPoint(6, 13))
        Browser_HtmlBrowser(Document_Http1921685526UserCon(), DEFAULT_FLAGS).InputChars(pName)
        Table_HtmlTable_1().Click(AtCell( _
                                    AtRow(AtIndex(0)), _
                                    AtColumn(AtIndex(1))))
    Next

ただし、Visual Studio にエラーはなくてもdatas、値が割り当てられる前に警告が表示されるだけです。どこが間違っていますか?

4

1 に答える 1

1

作業する前に、新しいデータセットを初期化する必要があると思います。例:

Dim ds As DataSet = New DataSet()
Dim connection As OleDb.OleDbConnection
Dim command As OleDb.OleDbCommand
Dim adapter As New OleDb.OleDbDataAdapter
Dim connString As String = "my Connection string stuff;"

connection = New OleDb.OleDbConnection(connString)
Try
    'open the connection
     If connection.State = ConnectionState.Open Then
     Else
          connection.Open()
     End If
     'fill each data table
     command = New OleDb.OleDbCommand(selectOne, connection)
     adapter.SelectCommand = command
     adapter.Fill(ds, "someTableName")
 Catch ex As OleDb.OleDbException
   'error, do something
 Finally
    'close everything down
    adapter.Dispose()
    If (Not command Is Nothing) Then
        command.Dispose()
    End If
    connection.Close()
End Try

この例では OLEDB を使用していますが、実際に行っていることと比較できるはずです。入力したら、テーブルを反復処理できるはずです。ただし、最初に、最初にデータセットが作成されていることを確認してください。

If (ds IsNot Nothing) Then
  'do for statement here
End If

これでうまくいかない場合は、お知らせください。

于 2013-03-07T12:03:48.010 に答える