我是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”正确提取到标签控件?
非常感谢, 稔。
答案 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;