【发布时间】:2016-10-03 14:55:45
【问题描述】:
我是 MVVM 模式的新手。我创建了 MVVM 模式,我必须将列表填充到树视图控件。我有视图、视图模型和模型。我通过硬编码在模型中填充了数据。但现在我想要将我的 MS Access 数据表连接到模型中的列表而不是硬编码数据。我创建了 DAL lier 并连接了我的 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;
}
}
}
这里的 loademp 方法将返回数据表。 在模型中,我只是想填写列表。我遇到的代码在这里:
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/
【问题讨论】:
-
如何执行此操作取决于
Node类。那看起来像什么? -
我的节点类:class Node { public int Id { get;放; } 公共字符串名字 { 获取;放; } 公共字符串姓氏 { 获取;放; } 公共 int ParentId { 获取;放; } } }
-
这里有很多与 WPF/MVVM 无关的内容。应该将问题简化为仅从您的 DataRow 实例创建一个 Node 实例。
标签: c# .net wpf ms-access ado.net