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

Posted

技术标签:

【中文标题】如何确保将空文本框文本作为 DBNull 输入到数据库中?【英文标题】:How can I make sure empty textboxes text are entered into the db as DBNull? 【发布时间】:2012-11-24 19:31:00 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这是一种允许从零长度字符串往返 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;
            
        
    

【讨论】:

以上是关于如何确保将空文本框文本作为 DBNull 输入到数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 vb.net 中日期的空值传递给 sql 存储过程?

如何确保文本框只接受整数(而不是字符串)

如何在 WPF C# 中获取多文本框作为方法的输入参数

javaswing文本框不能输入中文

如何将空日期插入访问

如何接收隐藏文本框的输入并提交表单?