如何确保将空文本框文本作为DBNull输入到数据库中?

时间:2012-11-24 19:31:00

标签: ms-access parameters textbox oledb dbnull

我有一个包含18个文本框的数组,如何指定哪个文本框为空,以便我可以将DBNull传递给我的参数到我的数据库访问层?我正在使用OleDb与Ms Access

1 个答案:

答案 0 :(得分:0)

这是一种允许与零长度字符串不同的NULL跳转的解决方案。

// <custom:NullableTextBox runat="server" id="Field1" />
// In code behind bind & unbind using Field1.NullableValue instead of Field1.Text
// In web config, update pages/controls as such with MyApp replaced with the 
// assembly name of your app
// <pages>
//      <controls>
//          <add  tagPrefix="custom" namespace="Custom" assembly="MyApp"/>
//     </controls>
//  </pages>
public class NullableTextBox :TextBox
{
    public object NullableValue
    {
        set
        {
            ViewState["IsDbNull"] = DBNull.Value==value;
            Text = value.ToString();
        }
        get
        {
            bool isNull = false;
            if (ViewState["IsDbNull"] != null)
            {
                isNull = Convert.ToBoolean(ViewState["IsDbNull"]);
            }

            if (isNull
                    && string.IsNullOrEmpty(Text.Trim()))
            {
                return DBNull.Value;
            }
            else
            {
                return Text;
            }
        }
    }
}