LINQ to SQL - 从Var获取字符串

时间:2011-06-21 09:28:30

标签: c# sql linq string

我是LINQ to SQL世界的新手 - 所以如果问题很愚蠢我很抱歉:) - 我在互联网上找不到任何答案:

我有一个包含两列的表 - “Batch_Name”和“Batch_id”。 用户选择批次ID,应用程序需要返回其名称。

我有这个C#代码根据批次ID(“myBatchNum”)提取批次名称:

        var thisBatch = from x in gridDB.batches
                        where x.batch_id == myBatchNum
                        select new { x.batch_name };


        lblBatchName.Text = thisBatch.First().ToString();

这个摘录来自正确的批处理名称,但是当我尝试在标签控件上显示名称时,我得到了这个结果(“NightBatch是DB中的名称):

{batch_name = NightBatch}

如何将批次名称从“thisBatch”正确提取到标签控件?

非常感谢, 稔。

4 个答案:

答案 0 :(得分:4)

目前还不清楚您是否需要使用匿名类型。只需使用:

var thisBatch = from x in gridDB.batches
                where x.batch_id == myBatchNum
                select x.batch_name;

lblBatchName.Text = thisBatch.First();

或者,如果 想要使用匿名类型,只需使用您已有效创建的属性:

var thisBatch = from x in gridDB.batches
                where x.batch_id == myBatchNum
                select new { x.batch_name };

lblBatchName.Text = thisBatch.First().batch_name;

答案 1 :(得分:2)

您正在创建一个匿名类型,其中包含一个名为batch name的属性。如下所示更改代码以返回字符串:

var thisBatch = from x in gridDB.batches
                where x.batch_id == myBatchNum
                select x.batch_name;

答案 2 :(得分:1)

删除最后的ToString(),因为您只选择了名称

答案 3 :(得分:0)

您正在ToString()语句中生成的匿名类型上调用select。试试这个:

lblBatchName.Text = thisBatch.First().batch_name;