【问题标题】:Adding multiple rows of information from a database to a text box将数据库中的多行信息添加到文本框
【发布时间】:2015-12-29 22:06:17
【问题描述】:

感谢您查看我的问题。基本上,在我的表单中……经理可以为员工设置提醒,所以当员工登录我的表单时……它会出现来自经理的提醒。

问题是,数据包含来自同一用户的多个提醒,但是当我将它们添加到文本框时,我收到此错误:

System.Core.dll 中出现“System.InvalidOperationException”类型的未处理异常

附加信息:序列包含多个元素

我的代码:

                System.Windows.Forms.Form f = System.Windows.Forms.Application.OpenForms["Login"];
            int id = Convert.ToInt32(((Login)f).idTb.Text);
            SundownDatabaseEntities4 db = new SundownDatabaseEntities4();
            var getrecord = db.Reminders.Where(a => a.Id == id).SingleOrDefault();

            reminderTb.Text = Convert.ToString(getrecord.Reminder1);

如何向文本框添加多个元素?我可以使用列表框吗?

【问题讨论】:

    标签: c# sql database forms


    【解决方案1】:

    听起来您正在尝试将多个不同的字符串附加到单个文本框,在这种情况下,我将使用文本框上的 appendText() 扩展来添加多个字符串。如果您愿意,也可以使用 ListBox。为了便于使用,我会将 Source 设置为您发送的数据。

    这里是附加文本功能的链接 https://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.appendtext(v=vs.110).aspx

    这里是如何设置列表框源的链接 https://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.datasource(v=vs.110).aspx

    编辑

    补充一下,因为它是导致我会使用的问题的其他原因:

    List<object> objects = Enumerable.Select(i => i.id == id);
    

    这里是 msdn 的链接以获取更多信息 https://msdn.microsoft.com/library/bb548891(v=vs.100).aspx

    编辑 2

    在终于让我的 VS 更新并玩弄之后,我认为你可以在这里做的最简单的事情是:

    db.Reminders.ForEach(reminder => {if(reminder.Id == id){ reminderTb.AppendText(Convert.ToString(reminder.Reminder1));  }})
    

    您可能需要根据您的特定代码进行相应调整我想这就是你想要的基于你的代码和我看到的类结构。这应该可以工作,因为您手动浏览数组并添加文本。

    【讨论】:

    • 您好,感谢您的评论。这一行:'var getrecord = db.Reminders.Where(a => a.Id == id).SingleOrDefault();'似乎是问题所在,它正在寻找 1 个 id 并且数据库中有多个相同的 id,有什么建议吗?谢谢!
    • 列表 objects = Enumerable.Select(i => i.id == id);不起作用我收到一个错误:方法没有重载...采用 1 个参数。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多