Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将LINQ结果转换为字符串VB.NET_Vb.net_Visual Studio 2010_Linq - Fatal编程技术网

将LINQ结果转换为字符串VB.NET

将LINQ结果转换为字符串VB.NET,vb.net,visual-studio-2010,linq,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 t

我有一个模块,可以正确地提取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....
由于LINQ延迟执行,在streamwriter实际开始写入数据之前,LINQ查询不会有数据

在花括号内,您正在创建一个匿名类型。要为其设置属性的每一列都位于等号的左侧。如果不想创建和映射所有列,请改用此选项:

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

如果您需要查看查询的内容,请在创建streamwriter之前在行中添加
q.ToList()

以下代码有效

  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

我认为这是因为你还没有真正“执行”你的查询,因为LINQ的延迟执行。请尝试在查询中选择一个.FirstOrDefault(),它表示FirstOrDefault不是我表格的成员OK,现在我的文本文件为空,表格中确实存在该项我对VB不是很熟悉,但您的函数是否会在Return语句中退出?如果是这样,则意味着streamwriter代码将永远不会运行。你能在VisualStudio中调试代码,这样你就可以看到“q”的值了。它绝对不会运行!
  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