C# 如何在SQLServer2008中将一组预设的字符串值分配给表的字段?
我希望SQL Server 2008表格中的一个字段包含预设数量的字符串值,以便用户能够从我的WPF前端应用程序的下拉列表框中选择一个值C# 如何在SQLServer2008中将一组预设的字符串值分配给表的字段?,c#,sql,sql-server,wpf,mapping,C#,Sql,Sql Server,Wpf,Mapping,我希望SQL Server 2008表格中的一个字段包含预设数量的字符串值,以便用户能够从我的WPF前端应用程序的下拉列表框中选择一个值 是否只能通过在SQL Server表字段中指定一个数字int类型,然后通过C前端编码完成所有工作,或者有其他方法?制作一个包含可能值的表,并使用外键将该字段引用到该表: 要在下拉列表中显示所有可能的值,只需用此查询的结果填充即可: SELECT string_val FROM possible_strings 创建一个包含可能值的表,并使用外键将字段
是否只能通过在SQL Server表字段中指定一个数字int类型,然后通过C前端编码完成所有工作,或者有其他方法?制作一个包含可能值的表,并使用外键将该字段引用到该表: 要在下拉列表中显示所有可能的值,只需用此查询的结果填充即可:
SELECT string_val
FROM possible_strings
创建一个包含可能值的表,并使用外键将字段引用到该表: 要在下拉列表中显示所有可能的值,只需用此查询的结果填充即可:
SELECT string_val
FROM possible_strings
有两种不同的方法可以很好地做到这一点,我想到了两种。两者都不是特定于Sql Server的 首先,是创建一个表,其中包含进入下拉列表的值。这将是一个非常简单的表,例如 星期五 名称varchar9 PK 然后通过外键关系在其他表中引用它 小时数 Id唯一标识符PK Day varchar9 FK ... 另一种方法是在应用程序中定义枚举
public enum DayOfWeek { Monday, Tuesday, Wednesday, /*etc*/ }
然后在数据库中将其另存为int是的,您可以使用不同的数据类型:
小时数
Id唯一标识符PK
日整数
如果你认为列表会有波动,那么第一种方法更好。如果您希望列表是静态的,那么第二个列表通常更容易在代码中处理。有两种不同的方法可以做到这一点,我想到了两种。两者都不是特定于Sql Server的 首先,是创建一个表,其中包含进入下拉列表的值。这将是一个非常简单的表,例如 星期五 名称varchar9 PK 然后通过外键关系在其他表中引用它 小时数 Id唯一标识符PK Day varchar9 FK ... 另一种方法是在应用程序中定义枚举
public enum DayOfWeek { Monday, Tuesday, Wednesday, /*etc*/ }
然后在数据库中将其另存为int是的,您可以使用不同的数据类型:
小时数
Id唯一标识符PK
日整数
如果你认为列表会有波动,那么第一种方法更好。如果您希望列表是静态的,那么第二个列表通常更容易在代码中处理。我已经按照您的想法在数据库中创建了一个查找表,并在C中创建了一个对应的枚举类型。危险在于,当修改代码时,您的枚举和数据库表最终将失去同步。此外,枚举类型不允许您在应用程序中使用可读性好的名称
我以前通过创建一个类从数据库加载数据并缓存数据来解决这个问题。您可以将UI控件作为数据源绑定到它,使前端开发人员的工作更轻松。我已经完成了您的想法,在数据库中创建了一个查找表,并在C中创建了相应的枚举类型。危险在于,修改代码时,您的枚举和数据库表最终将失去同步。此外,枚举类型不允许您在应用程序中使用可读性好的名称
我以前通过创建一个类从数据库加载数据并缓存数据来解决这个问题。您可以将UI控件作为数据源绑定到它,使前端开发人员的工作更轻松。这有利于数据验证,但我认为他想知道如何使用应用程序前端的值。这有利于数据验证,但我认为他想知道如何使用应用程序前端的值。