在我的数据库中,我有定义类型的表,例如
表:出版物类型
身份证 |类型
----------
1 |文章
2 |抽象的
3 |书
……
它通过 ID 键与具有字段 TypeID 的发布表相关联。
然后,我在我的 .NET 应用程序中创建了一个 PublicationTable 数据表,我想根据发布类型对其进行过滤。例如,以下函数为我提供了特定作者和出版物类型的出版物数量。
公共(public)函数 countPublications(ByVal authorID As Integer, _
ByVal PublicationType As Integer) As Integer
将 authPubs 调暗为新 PublicationsDataSet.tblPublicationsDataTable
authPubs = Me.getAuthorsPublications(authorID)
将 dv 调暗为新数据 View (authPubs)
dv.RowFilter = "status='已发布' AND type='"+ _
发布类型.ToString + "'"
返回 dv.Count
结束功能
要调用此函数以获取特定类型作者的文章计数,我可以
countPublications(authorID, 1)
countPublications(authorID, pubType.Article)
或
我应该考虑哪些其他方法。
谢谢
最佳答案
如果发布类型本质上是静态的,那么枚举就可以了
可以说嵌入之间几乎没有区别
inner join lookuptable lt on lt.id = (int)myenum.sometype
在查询中并添加
inner join lookuptable lt on lt.name = "somehardcodeddescription"
它们都是嵌入式常量,前者只是在它后面有一个定义明确的类型
或者你可以使用
inner join lookuptable lt on lt.name = myenum.sometype.ToString
我更喜欢前者
另一方面,如果在部署代码后可能会添加新的查找类型,那么枚举很快就会过时;
但是如果有代码需要的核心静态枚举值集,其余的无关紧要,那么前一个解决方案仍然可以
像往常一样,“这取决于”;-)
关于.net - 我应该使用枚举还是查询数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252202/