首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c# windows窗体中使用n层体系结构使用数据库值填充组合框

如何在c# windows窗体中使用n层体系结构使用数据库值填充组合框
EN

Stack Overflow用户
提问于 2019-01-12 01:43:28
回答 1查看 141关注 0票数 0

我编写代码来用数据库值填充combobox。如果这段代码是在表示层上编写的,那么我的代码就能正常工作。但是我想把这段代码写在数据层上。我的解决方案中有3个项目(UI、BLL、DAL)。我想在DAL中使用此代码,然后在BLL的帮助下调用UI。如何做到这点。请帮帮我。这是我的代码。

如何将我的代码转换成3层架构。

代码语言:javascript
复制
using (SQLiteConnection conn = new SQLiteConnection(EmployeeComboFills.ecbconn()))
            {
                string CommandText = "SELECT Name FROM User";
                using (SQLiteCommand cmd = new SQLiteCommand(CommandText, conn))
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    DataTable dt = new DataTable();
                    SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
                    da.Fill(dt);
                    foreach (DataRow dr in dt.Rows)
                    {
                        CELD_employeename.Items.Add(dr["Name"].ToString());
                    }
                }
            }

如何在三层中编写这段代码。或者如果有人有更好的代码,那么请分享它。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-12 01:59:46

不是直接将项目添加到组合框,而是将它们添加到列表中。假设EmployeeComboFills是您的静态DAL类,您可以将此方法添加到其中

代码语言:javascript
复制
public static List<string> GetUserNames()
{
    string CommandText = "SELECT Name FROM User ORDER BY Name";
    using (SQLiteConnection conn = new SQLiteConnection(ecbconn()))
    using (SQLiteCommand cmd = new SQLiteCommand(CommandText, conn))
    {
        conn.Open();
        DataTable dt = new DataTable();
        SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
        da.Fill(dt);
        return dt.Rows
            .Cast<DataRow>()
            .Select(dr => dr["Name"].ToString())
            .ToList();
    }
}

然后,您可以使用以下命令将其分配给combobox

代码语言:javascript
复制
CELD_employeename.DataSource = EmployeeComboFills.GetUserNames();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54151585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档