C#给datetime列存入null值

首先:在声明变量时要设置其允许为空

     private DateTime? _member_BirthDay;
        public DateTime? Member_BirthDay
        {
            get { return _member_BirthDay; }
            set { _member_BirthDay = value; }
        }

其次:在使用的时候给字段赋值

     if (time_day.Text.ToString() == " ")
            {
                mi.Member_BirthDay = null;
            }
            else
            {
                mi.Member_BirthDay = Convert.ToDateTime(time_day.Text.ToString());
            }

最后:写入数据库,根据datetime的值觉得插入数据

方法一:datetime列为null时,不插入此列

修改insert方法为“为指定列插入数据方法”,方法为: ========参数:tableName===表名,dictionary(key,value)===(列名,值)

 public static int Insert(string tableName, Dictionary<string, string> columnsAndValues) {
            if (columnsAndValues.Count < 1) {
                return -1;
            }
            StringBuilder columns = new StringBuilder();
            StringBuilder values = new StringBuilder();
            foreach (KeyValuePair<string, string> kvp in columnsAndValues) {
                columns.Append(", [");
                columns.Append(kvp.Key);
                columns.Append("]");

                values.Append(", '");
                values.Append(kvp.Value.Replace("'", "''"));
                values.Append("'");
            }
            columns.Remove(0, 1);
            values.Remove(0, 1);
            string sql = string.Format("INSERT INTO {0} ({1}) VALUES({2});", tableName, columns.ToString(), values.ToString());
            int i = 0;
            DbHelper dh = new DbHelper();
            try {
                dh.OpenConn();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sql;
                cmd.Connection = dh.Conn;
                i = cmd.ExecuteNonQuery();
            }
            catch (Exception ex) {
                Error.WriteExceptionText(ex);
                throw ex;
            }
            finally {
                dh.CloseConn();
            }
            return i;
        }
方法二:给为datetime参数赋值为DBnull.value

 parameters[6].Value = Member_Info.Member_BirthDay == null ? (object)DBNull.Value : Member_Info.Member_BirthDay;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值