文本框中的 SQL 表结果命令,而不是 C# 中的结果

本文关键字:结果 命令 SQL 文本 | 更新日期: 2023-09-27 17:56:45

这是我的表格设置:

int | Design_1
0   | Design_A
1   | Design_B
2   | Design_C

这是我的表单代码:

var design = (from d in BikePartsDataContext1.handlebars
              where d.@int == "0"
              select d.Design_1);
this.textBox1.Text = design.ToString();

我试图做的是使textBox1文本具有@int为 0 的行中的 Design_1 值的值。

一切正常,直到我将其作为textBox1的文本值:

SELECT [t0].[Design 1] FROM [dbo].[handlebars] AS [t0] WHERE [t0].[int] = @p0

文本框中的 SQL 表结果命令,而不是 C# 中的结果

我想你想要第一个基于Id的记录吗?

// at top of file so you can use the extension methods
using System.Linq;
// code
var design = (from d in BikePartsDataContext1.handlebars
              where d.@int == 0 // i removed the quotes add them back if this is truely a string/sql varchar
              select d.Design_1).Single(); // use single to ensure only 1 record will get selected
this.textBox1.Text = design; // design will now be the value of Design_1

一些注意事项:

    如果未找到记录
  • 或找到多个记录,则单个将引发异常。
  • 如果可以有 0 条记录,请使用 SingleOrDefault
  • 如果可以有 1 条以上的记录,并且您不在乎使用哪一条,请使用 FirstFirstOrDefault
  • 我假设您的 id 是一个 int 而不是一个字符串,所以我删除了 0 周围的引号,如果不是这种情况,请将它们添加回来

您也可以仅使用 lambda 表达式重写它:

this.textBox1.Text = BikePartsDataContext1.handlebars
    .Where(x => x.@int == 0)
    .Select(x => x.Design_1)
    .Single();