“datagridviewcell类型的值不能转换为字符串”vb.net

时间:2017-01-10 20:16:15

标签: string vb.net datagridview

我正在尝试从DataGridView获取数据并将该数据保存到txt文件中,以便以后可以将其加载到网格中。现在,它将保存文件,但由于错误

而不会写入文件

“datagridviewcell类型的值无法转换为字符串”或

“mscorlib.dll中发生了类型'System.FormatException的未处理异常' 附加信息:输入字符串的格式不正确。“

我不知道该怎么做,我无法在任何地方找到解决方案。

Private Sub SaveButton_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
    'SGD is my save file dialog box
    SGD.ShowDialog()
    Using writer As New StreamWriter(SGD.FileName)
        For Each row As DataGridViewRow In QAfield.Rows
            writer.WriteLine(row.Cells.Item("AgentColumn").ToString, row.Cells.Item("ScoreColumn"), row.Cells.Item("PassColumn"), row.Cells.Item("FailColumn"))

        Next
    End Using
End Sub

1 个答案:

答案 0 :(得分:2)

错误是因为您没有访问valueDataGridViewCell而不是单元格本身......

此回报是DataGridViewCell

 row.Cells.Item("AgentColumn")

当您添加ToString时,您试图获取此对象并将其转换为字符串,这将无法正常工作以及您看到的确切错误。

  row.Cells.Item("AgentColumn").ToString

您需要访问value本身......

 row.Cells.Item("AgentColumn").Value.ToString()

另外注意,如果Value为NULL,则在添加ToString时会抛出异常,因为您无法将NULL转换为空字符串。在将它投射到字符串之前,我会检查这个value ...

 If row.Cells.Item("AgentColumn").Value IsNot DBNull.Value Then ....