我有一个表 Person 和一个表 PersonRole ,在 Person.Role ==> PersonRole.ID 上带有外键。
我的组合框使用DataSource,Display-和ValueMember属性进行数据绑定,因此当我在另一个控件中选择其他角色时,它会自动更新。但是,组合框显示了 Person.Role 字段(= ForeignKey整数),但我需要它来显示 PersonRole.Name 。但是,没有可以将其绑定到外键的内置选项吗?当然,我可以将其绑定到 PersonRole ,但是当我更改 Person 中的活动行时,它不会自动更新。
在图片中:What I have和 What 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个数据集需要链接,或者..我不知道了...我肯定一定很简单。我认为仍然应该没有代码。