我需要知道如何避免vb 2010中的System.Data.DataRowview

时间:2013-02-27 20:19:07

标签: vb.net vb.net-2010 filewriter databound-controls

我的代码存在问题;并希望得到一些帮助,让她做我想做的事,没有恼人的错误。读取数据绑定列表框字符串,找到用户选择的字符串并将所述字符串写入文件。

    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

1 个答案:

答案 0 :(得分: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 

会给你带来一些问题。您已声明一个与另一个变量同名的循环变量。然后你要为它分配一个值。

另外,我不清楚这两个循环的目的是什么。我对你在这部分代码中想要完成的内容感到有些困惑。我将从这一行重命名变量开始:

Dim item as String

我将以此为例:

Dim result as string

使其他东西,然后你不能在循环中更改item的值(因为这是循环变量)。这将导致错误。

将循环内的代码更改为:

result = String.Parse(lstCustomer.SelectedValue)

这种情况仍然无法让你到达你想去的地方,但这是一个好的开始。除非你的lstCustomer中的每个项目包含多个要迭代的项目,否则我认为你可能只需要第一个外部循环。

如果您的循环开头如下:

For Each objDataRowView As DataRowView In lstCustomer.SelectedItems

然后我想你会想要:

objDataRowView.Item("customer")

作为输出。我认为这将是您表中客户领域的价值。

你基本上是说这一行有一个名为customer的列....我想要那个值。