LINQ to SQL-从变量中获取字符串

本文关键字:获取 字符串 变量 to SQL- LINQ | 更新日期: 2023-09-27 18:00:06

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

我有一个包含两列的表——"Batch_Name"answers"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"中正确提取到标签控件?

非常感谢,尼姆。

LINQ to SQL-从变量中获取字符串

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

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;

删除末尾的ToString(),因为您已经只选择了名称

您正在创建一个具有一个名为batch_name的属性的匿名类型。按如下方式更改代码以返回字符串:

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

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

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