【问题标题】:ConvertEmptyStringToNull propertyConvertEmptyStringToNull 属性
【发布时间】:2010-10-14 18:50:24
【问题描述】:

一) public void GetEmployee(int EmployeeID);

<asp:ObjectDataSource  SelectMethod=”GetEmployee” …>
  <SelectParameters>
    <asp:ControlParameter Name = ”EmployeeID” ...>
  </SelectParameters>


如果出于某种原因 EmployeeID 参数为 NULL,则 ObjectDataSource 将 Null 转换为零并将其作为参数传递给 GetEmployee() 方法。

为什么运行时会进行这样的转换?不会扔一个 例外更有意义?

B) “使用 ConvertEmptyStringToNull 属性来指定是否 空字符串值在数据时自动转换为null 字段在数据源中更新。”
我不太明白这个属性的用处。为什么会 空字符串表示我们希望将 null 插入到源的 数据字段?我假设这个数据字段是字符串类型的?然后 为什么不也有 ConvertZeroInt32ToNull 等?

再见

【问题讨论】:

    标签: .net asp.net sql ado.net


    【解决方案1】:

    A) ODS 似乎正在为 T 类型的 null 生成默认值。在 int 的情况下,默认值为 0。

    B) HTML 中无法通过输入标签来表示空值。当将空字符串传递给 ODS 并将 Convert Empty to Null 设置为 true 时,将设置 null 值。没有 ConvertZeroToNull 属性,因为 HTML 或 Windows 表单上的所有文本框数据都是字符串类型。

    【讨论】:

    • 但是抛出异常不是更有意义吗?
    • 通过抛出一个更有意义的异常,我指的是问题 A
    • 不确定异常是否是最佳选择。如果存在参数是可选的情况,那么 null -> default 可能是处理此问题的最佳方法。我已经很长时间没有使用 ODS 了,所以其他人可能会对此发表更好的评论。
    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2012-07-19
    • 2014-03-05
    • 2010-09-17
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多