将LINQ结果转换为String VB.NET

时间:2014-02-14 16:32:11

标签: vb.net visual-studio-2010 linq

我有一个正确拉出Linq查询并将其写入文本文件的模块。我只需要知道如何将其转换为实际的字符串值。感谢。

 Imports System.IO

 Module CheckExists

Public objStreamWriter As StreamWriter

Public Function SimpleQ4()

    Dim dc As New DatabaseDataContext

    Dim q = _
        From a In dc.GetTable(Of tblDealer)() _
        Where a.chvDealerName = "Something" _
        Select a

    Return q.ToString

    objStreamWriter = New StreamWriter("path.txt")

    objStreamWriter.WriteLine(q)

End Function

 End Module

这是在myt文本文件中返回

 SELECT [t0].[iD], etc....

2 个答案:

答案 0 :(得分:0)

Public Function SimpleQ4()
    Dim dc As New DatabaseDataContext
    Dim q = _
        From a In dc.GetTable(Of tblDealer)() _
        Where a.chvDealerName = "Something" _
        Select New With
        {
            myFirstColumn = a.columnName,
            mySecondColumn = a.anotherColumnName,
            ...
        }

    objStreamWriter = New StreamWriter("path.txt")
    objStreamWriter.WriteLine(q)
End Function

由于LINQ延迟执行,在编写器实际开始写入数据之前,LINQ查询将不会有数据。

在大括号内创建一个匿名类型。您想要属性的每列都位于等号的左侧。如果您不想创建并映射所有列,请改为使用:

        From a In dc.GetTable(Of tblDealer)() _
        Where a.chvDealerName = "Something" _
        Select a

如果您需要查看查询内容,请在创建编写器之前在该行上添加q.ToList()

答案 1 :(得分:0)

以下代码可以使用

  Public Sub textFile()

    Dim ddc As New DatabaseDataContext

    Dim q = _
    (From a In ddc.GetTable(Of Table)() _
            Where a.Name = "Something" _
            Select a.Name).ToList

    For Each item In q
        objStreamWriter.WriteLine(item)
    Next

End Sub