保存时从 CategoryName 转换为 CategoryID
Convert from CategoryName to CategoryID when saving
根据上图,我想保存在组合框中选择的 CategoryName
的 CategoryID
。
我用 enum
做过一次,但是 CategoryName
来自数据库而不是 enum
。
我该怎么做?或者这可能吗?
如果您想要一个向用户显示字符串但将 ID 值保存到数据库的组合框控件,您应该使用 LookUpEdit 控件。
将 LookUpEdit.Properties.DataSource 属性 绑定到 IEnumerable 的实例,例如 DataTable 或 List。然后将 LookUpEdit.Properties.DisplayMember 属性 设置为数据源中的字符串 field/property 并将 LookUpEdit.Properties.ValueMember 属性 设置为该数据源中的整数 field/property 代表字符串的值。
参见:Standard Binding (to Simple Data Types)
-和-
Advanced Binding (to Business Objects)
例如,如果您有一个 Sql 查询,例如:
SELECT CategoryID, CategoryName FROM Categories
以及执行此查询的方法和 returns 来自此查询的数据表“dtCategories”,您可能会这样做:
myLookUpEdit.Properties.DisplayMember = CategoryName;
myLookUpEdit.Properties.ValueMember = CategoryID;
myLookUpEdit.Properties.DataSource = dtCategories;
LookUpEdit.EditValue 属性 将是所选的 CategoryID。
Dale 的解决方案似乎假设您使用的是 ASP.NET 组合框控件,根据您的屏幕截图显然不是这种情况。没有“DataBind”方法。
根据上图,我想保存在组合框中选择的 CategoryName
的 CategoryID
。
我用 enum
做过一次,但是 CategoryName
来自数据库而不是 enum
。
我该怎么做?或者这可能吗?
如果您想要一个向用户显示字符串但将 ID 值保存到数据库的组合框控件,您应该使用 LookUpEdit 控件。
将 LookUpEdit.Properties.DataSource 属性 绑定到 IEnumerable 的实例,例如 DataTable 或 List。然后将 LookUpEdit.Properties.DisplayMember 属性 设置为数据源中的字符串 field/property 并将 LookUpEdit.Properties.ValueMember 属性 设置为该数据源中的整数 field/property 代表字符串的值。
参见:Standard Binding (to Simple Data Types)
-和-
Advanced Binding (to Business Objects)
例如,如果您有一个 Sql 查询,例如:
SELECT CategoryID, CategoryName FROM Categories
以及执行此查询的方法和 returns 来自此查询的数据表“dtCategories”,您可能会这样做:
myLookUpEdit.Properties.DisplayMember = CategoryName;
myLookUpEdit.Properties.ValueMember = CategoryID;
myLookUpEdit.Properties.DataSource = dtCategories;
LookUpEdit.EditValue 属性 将是所选的 CategoryID。
Dale 的解决方案似乎假设您使用的是 ASP.NET 组合框控件,根据您的屏幕截图显然不是这种情况。没有“DataBind”方法。