【发布时间】:2015-06-14 18:47:22
【问题描述】:
我们的数据库表中有错误消息列表,当我们遇到一些业务验证错误时,我们会从表中获取这些错误消息。 例如如果在 c# 代码中我们发现计算的风险百分比大于允许值,则使用以下代码时
string sError = GetErrorText(6610); // get error message from application cache
DisplayErrorPopup(sError ); // load a popup to display error to user.
现在我们发现在某些情况下我们必须验证存储过程中的一些规则。例如“工人没有活跃的主管。”
我的问题是,当数据库中发生验证时,我们应该如何处理这种情况?
A. 我们是否应该返回错误文本“工人没有活跃的主管”。作为 SP 的输出参数并将其传递给 DisplayErrorPopup
OR
B. 返回错误 id(存在于表中),然后使用 GetErrorText(834),然后将文本传递给 DisplayErrorPopup;
我的担忧是
1. 是否有任何行业标准来处理错误消息和文本的最佳实践。
2. 当我们有返回数字的选项时,从数据库返回字符串/varchar有什么缺点吗?
请指导我。
【问题讨论】:
-
如果您唯一需要做的就是显示错误消息,那么我认为最好通过存储过程的输出参数直接返回字符串。如果您返回一个 ID,那么您需要再次调用以将文本从数据库中取出。
-
嗨@Steve:这就是诀窍。我们不必再次访问数据库,因为所有错误消息都已加载到应用程序变量中。