C# (.NET 3.5)
我有一个带有两个表的 SQLite 数据库 - 员工(第一列是 id INTEGER PRIMARY KEY)和假期(id INTEGER - 表示员工的 ID;开始日期,结束日期 - 不言自明)。
我的表单包含代表员工详细信息的文本框、复选框等 - 但说我还想要一个列表框,列出当前选定员工的所有假期。
所以我需要一个数据关系,因为列表框应该一次只显示一个人的假期(两个数据表上的 ID 需要匹配)。
var command = new SQLiteCommand("SELECT * FROM employees; SELECT * FROM holidays");
var connection=new SQLiteConnection(@"data source=C:\employees.db");
command.Connection = connection;
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
DataSet d = new DataSet();
adapter.Fill(d);
DataTable employees = d.Tables[0];
// [...]
// here I'm databinding my textboxes etc. to various columns
// of the employees data table - this works fine, navigation works well etc.
// [...]
DataTable holidays = d.Tables[1];
DataRelation relation;
DataColumn master = employees.Columns[0];
DataColumn slave = holidays.Columns[0];
relation = new DataRelation("relation", master, slave);
d.Relations.Add(relation);
var dsView = holidays.DefaultView;
listBox1.DisplayMember = "holidays.relation.start"; // <= it wouldn't look good like that of course, but I just want to get the thing to work for now
listBox1.DataSource = dsView;
- 但我得到的只是一个列表框,里面装满了一堆“System.Data.DataRow”。在这个实现中,我尝试按照我在 Akadia 上找到的教程进行操作......我哪里出错了?谢谢