0

我正在使用 LINQ to SQL 运行查询。我正在尝试将结果输出到消息框中,但显示的消息框显示的是我的查询而不是结果?

这是我的代码

var thisQuery = from c in myContext.SpecificTable
                where c.UniqueValue == "\'Z1234\'"
                select new
                {
                c.UniqueValue,
                c.UniqueValueDetails,
                c.UniqueValueType
                };

MessageBox.Show(thisQuery.ToString());

我想问题是我不能直接将 thisQuery 调用为字符串,但我不确定如何查看查询结果?

当我运行上述内容时,我得到一个显示的消息框:

SELECT [t0].[UniqueValue], [t0].[UniqueValueDetails], [t0].[UniqueValueType]

FROM [dbo].[SpecificTable] AS [t0]

WHERE [t0].[UniqueValue] = @p0

如何在消息框中查看我的查询结果?

我还尝试将整个查询结果存储到字符串,但最终得到相同的结果:

var thisQuery = (from c in myContext.SpecificTable
                where c.UniqueValue == "\'Z1234\'"
                select new
                {
                c.UniqueValue,
                c.UniqueValueDetails,
                c.UniqueValueType
                }).ToString();

MessageBox.Show(thisQuery);

我尝试查找并阅读了一些线程,但我似乎无法以产生结果的方式来表达这个问题。

4

1 回答 1

2

MessageBox.Show可以将字符串显示为消息,您的查询返回表格数据。您可以连接查询的所有结果,然后显示MessageBox如下:

var messageString = string.Join(Environment.NewLine, 
                               thisQuery.Select(r=> string.Format("{0}, {1}, {2}"
                                                    , r.UniqueValue
                                                    , r.UniqueValueDetails
                                                    ,r.UniqueValueType));

MessageBox.Show(messageString);

如果您Grid用于显示查询中的记录,它会更好。

于 2013-09-23T17:40:30.093 回答