在Sqlite数据绑定组合框中显示外键数据

时间:2019-04-16 10:20:53

标签: c# sqlite combobox foreign-keys

我有一个表 Person 和一个表 PersonRole ,在 Person.Role ==> PersonRole.ID 上带有外键。

我的组合框使用DataSource,Display-和ValueMember属性进行数据绑定,因此当我在另一个控件中选择其他角色时,它会自动更新。但是,组合框显示了 Person.Role 字段(= ForeignKey整数),但我需要它来显示 PersonRole.Name 。但是,没有可以将其绑定到外键的内置选项吗?当然,我可以将其绑定到 PersonRole ,但是当我更改 Person 中的活动行时,它不会自动更新。

在图片中:What I haveWhat I want

我尝试使用QueryBuilder Query Builder Result 但显然不起作用(错误:“查询返回的模式与基本查询不同”。),因为不允许我的列与数据表不同(我认为)。

然后我通过FormLoad中的代码进行了尝试:

        using (SQLiteConnection cnn = new SQLiteConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
        {
            try
            {
                string query = "SELECT PersonRole.ID, PersonRole.Name FROM Person INNER JOIN PersonRole ON Person.ID = PersonRole.ID";
                SQLiteDataAdapter da = new SQLiteDataAdapter(query, cnn);
                cnn.Open();
                DataSet ds = new DataSet();
                da.Fill(ds, "Role");
                cboRole.ValueMember = "ID";
                cboRole.DisplayMember = "Name";
                cboRole.DataSource = ds.Tables["Role"];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

但这也不起作用。也许这2个数据集需要链接,或者..我不知道了...我肯定一定很简单。我认为仍然应该没有代码。

0 个答案:

没有答案