0

コードに問題があります。そして、迷惑なエラーなしで彼女に私がやりたいことをさせるためのいくつかの援助をいただければ幸いです。データバインドされたリストボックスの文字列を読み取り、ユーザーが選択した文字列を見つけて、その文字列をファイルに書き込みます。

    Private Sub btnContinue_Click(sender As System.Object, e
    As System.EventArgs) Handles btnContinue.Click
    '  1st file and mySQL Update to testing table
    If txtLocation.Text.ToString <> "" And txtUnitTested.Text.ToString <> "" Then 
        Dim filewriter As New System.IO.StreamWriter(
               "C:\Users\OER\Documents\Visual Studio 2010\Projects\frmTest1_0.txt")
        Dim curItem = lstCustomer.SelectedItem
        Dim now As DateTime = DateTime.Now
        With filewriter
            .WriteLine(vbCrLf + (now.ToString("F"))) ' Write the DateTime to the file
        End With

        For Each objDataRowView As DataRowView In lstCustomer.SelectedItems
            Dim item As String
            For Each item As DataRowView In Me.lstCustomer.Items.Item("customer")
                item = String.Parse(lstCustomer.SelectedValue)
                WriteLine(curItem(item))
            Next item
        Next '  THIS IS THE FOR LOOP I AM HAVING ISSUES WITH!!!!!!!

        With filewriter
            .WriteLine(vbCrLf + txtLocation.Text + vbCrLf + txtUnitTested.Text)
        End With
        filewriter.Close()
        frmTest1.Show()
    Else
        MsgBox("Please Type the Location and Unit Tested!!!", vbCritical)
        txtLocation.Clear()
        txtUnitTested.Clear()
        txtLocation.Focus()
    End If
4

1 に答える 1

1

これらのループ:

For Each objDataRowView As DataRowView In lstCustomer.SelectedItems
     Dim item As String
     For Each item As DataRowView In Me.lstCustomer.Items.Item("customer")
         item = String.Parse(lstCustomer.SelectedValue)
             WriteLine(curItem(item))
     Next item
Next 

あなたにいくつかの問題を引き起こすでしょう。別の変数と同じ名前のループ変数を宣言しました。そして、それに値を割り当てています。

また、2つのループの目的が何であるかについてはあまり明確ではありません。コードのこのセクションで何を達成しようとしているのか、少し混乱しています。まず、次の行の変数の名前を変更します。

Dim item as String

これを例として使用します。

Dim result as string

それを別のものにすると、ループ内のアイテムの値を変更できなくなります(これはループ変数であるため)。エラーが発生します。

ループ内のコードを次のように変更します。

result = String.Parse(lstCustomer.SelectedValue)

たぶん、これでもあなたが行こうとしている場所にたどり着くことはできませんが、それは良いスタートです。lstCustomerの各アイテムに反復する複数のアイテムが含まれていない限り、とにかく、おそらく最初の外側のループだけが必要だと思います。

ループが次のように始まる場合:

For Each objDataRowView As DataRowView In lstCustomer.SelectedItems

次に、私はあなたが望むと思います:

objDataRowView.Item("customer")

出力されるものとして。それがあなたのテーブルのcustomerフィールドの値になると思います。

基本的に、この行にはcustomerという列があると言っています。その値を教えてください。

于 2013-02-27T21:09:05.363 に答える