将数据表中的记录添加到字典中

本文关键字:字典 添加 数据表 记录 | 更新日期: 2023-09-27 18:11:29

我是MVVM模式的新手。我已经创建了MVVM模式,我必须填写列表的树视图控制。我有视图,视图模型和模型。我已经通过硬编码在模型中填充数据,但现在我想连接我的MS Access数据表,以在模型中列出,而不是硬编码的数据。我已经创建了DAL并连接了我的MS Access数据表,如下所示:

        using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Configuration;
using System.Data;
namespace DAL2
{
    public class PersonalDAL
    {
       // static String _ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionStr"].ConnectionString;
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''faisal''Xerox2014''wpf''WPFHierarchy''IconnectDB.accdb");
        public DataTable loademp( )
        {
            con.Open();
            OleDbDataAdapter sda = new OleDbDataAdapter("select * from empTable", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);

            con.Close();
            return dt;
        }
    }
}

这里loadempp方法将返回数据表。在模型中,我只是想填充列表。我被卡住的代码在这里:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using DAL2;
using System.Data;
namespace DevLake.OrgChart.UI.Model
{
    class OrgChartManager
    {
        private static OrgChartManager self;
        //orgchart stored in dictionary
        private Dictionary<int, Node> list = new Dictionary<int, Node>();
        private OrgChartManager()
        {
           DataTable my_datatable = new DataTable();
        my_datatable = new PersonalDAL().loademp();
            int ColumnCount = my_datatable.Columns.Count;
            foreach (DataRow dr in my_datatable.Rows)
            {
                list.Add(dr);
               //******here I get stuck and throw syntax error on this line

            }

            //hard coded populate data
                // list.Add(1, new Node { Id = 1, FirstName = "Joe", LastName =                                                       "Smith", ParentId = 1 });
            //list.Add(2, new Node { Id = 2, FirstName = "Rich", LastName =    "Angel", ParentId = 1 });
                 //list.Add(3, new Node { Id = 3, FirstName = "Mary", LastName = "Peach", ParentId = 1 });

这里我不能填写列表,它抛出语法错误。任何人都可以帮助我如何填写我的列表与数据表数据。我的MS Access表看起来像这样:

ID  FirstName   LastName    ParentId
1   Joe Smith   1
10  Grey    Peech   9
11  Manny   Travel  9
2   Rich    Angel   1
3   Mary    Peach   1
4   Mike    Door    2
5   Jimmy   Fond    2
6   Ann Brown   4
7   George  Farm    4
8   Able    Jump    4
9   Corn    Shaw    1

我能够连接数据库并将数据表带到我的模型中,但在列表中填写数据表数据是我被卡住的地方。请帮助我的朋友

我的节点类:

    class Node
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int ParentId { get; set; }
    }
}
    Drow donw item contro within the data contarol
  https://scikit-learn.org/stable/ 
https://www.codemag.com/Article/1407051/Python-for-C

将数据表中的记录添加到字典中

        foreach (DataRow dr in my_datatable.Rows)
        {
            Node node = new Node
            {
                 Id = (int)dr["ID"]
                 FirstName = (string)dr["FirstName"],
                 LastName = (string)dr["LastName"],
                 ParentId = (int)dr["ParentId"]
            };
            list[node.Id] = node;
        }