![]() |
1
6
您还可以使用:
如果查看SQlDataReader[“field”]的定义,会发现:
本质上这是在做同样的事情,只是它是类型安全的。我喜欢做的是创建我自己的IDataReader,它包装SqlDataReader。CSLA使用一种类似的机制,称为SafeDataReader,因为它为实现此模式的所有各种数据类型提供重载。 如果你知道这个字段不会为空,你可以忽略isDbNull检查。由于冗长,我建议将其放在某种包装器或帮助程序类中,并用它们生成函数。 |
![]() |
2
4
所以,为了安全起见,我会选3个。 |
![]() |
3
2
请记住,问题与数据定义相互作用。如果“field”被定义为“Not Null”,那么您不必担心空数据,应该选择1作为可读性。类似地,如果字段可以为空,但在执行查询时使用“IsNull”函数:
然后,同样,您应该选择1,因为您仍然不必担心空值。当然,这假设您希望空字符串屏蔽空值。如果您想测试null,因为它是一个错误条件,那么您应该具有如下逻辑:
然而,最后一个案例并不是很好的实践。如果null是一个无效值(一个错误条件),那么您应该在DDL中排除它。 不过,最后,我总是选择选项1,因为我认为它会带来更好的可读性,并迫使我将空处理显式化。 |
![]() |
4
1
如果我想要一根绳子,我就做1。如果由于某种原因该字段不是字符串或更改类型,您至少可以通过异常机制了解它。 (不要把它包装在try/empty catch中。) |
![]() |
5
0
我喜欢那个??检查零位的操作员(如其他岗位所述) String field=rdr[“field”]作为字符串??字符串。空 这应该管用。如果不是,那么就晚了:P,除非你真的希望结果为空。如果是的话,我喜欢3。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |