gpt4 book ai didi

c# - LINQ Entity Framework 序列不包含任何元素

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:10 24 4
gpt4 key购买 nike

我有一个看起来像这样的数据库表:

enter image description here

我正在尝试通过引用 textboxID 检索 textboxValue,如下所示:

   public string GetPuzzle(string tid)
{
return context.crosswords.First(c => c.TextBoxID == tid).TextBoxValue;
}

上面的代码(CRUD 类文件)给我一个错误:System.InvalidOperationException: Sequence contains no elements

我使用 2 个 for 循环在面板中创建了 100 个文本框,每个文本框都有一个 00-99 的 id,所以我试图将 textBoxValue 附加到循环中文本框的文本中,并引用 textBoxID如上面的数据库。

下面的代码是我尝试做的,不知道它是否是正确的方法:

protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
TextBox tb = new TextBox();
tb.MaxLength = (1);
tb.Width = Unit.Pixel(40);
tb.Height = Unit.Pixel(40);
tb.ID = i.ToString() + j.ToString(); // giving each textbox a different id 00-99
Panel1.Controls.Add(tb);
tb.Enabled = false;

tb.Text = daoCrossword.GetPuzzle(tb.ID).ToString();
}

Literal lc = new Literal();
lc.Text = "<br />";
Panel1.Controls.Add(lc);
}
}

我正在尝试选择 textboxid = tid 的 textboxvalue。 tid 将是我在代码后面的 tb.ID,因为有 100 个循环,每次 tb.ID 都会从 00-99 增加,所以当它达到包含数据库中值的 ID 时,它将附加文本框值(来自数据库) 到那个文本框等等。

最佳答案

当您的查询没有返回任何元素时,将抛出该错误。您什么都不要求 .TextBoxValue 。考虑单独使用 .FirstOrDefault(),并检查 null,例如:

var crossword = context.crosswords.FirstOrDefault(c => c.TextBoxID == tid);

if (crossword != null) {
crossword.TextBoxValue;
}
else {
// error.. not found
}

您的循环很可能会导致“差一个”错误。

关于c# - LINQ Entity Framework 序列不包含任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17288073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com