如何在SQL日期字段中插入空值

时间:2018-09-17 06:12:05

标签: sql .net

我正在做一个项目,将保护中心的大象数据插入数据库中。我假设其中有一些大象出生而有天赋,因此我希望将两种日期保存到大象出生时,应该只有一个生日,就好像一头大象是有天赋的,它应该有两个日期,分别是到达日期和生日。

我已经对插入查询进行了编码。

<div class="wrapper">
  <div class="header">
  
  </div>
  <div class="content">
  
  </div>
</div>

在这里,保存日期时遇到了问题。如果我要保存在中心出生的大象,应该没有到达日期。因此我忽略了到达日期选择器,并将详细信息保存到数据库。当我查看数据库中的数据时,默认值会保存到到达日期。

enter image description here

我需要在到达日期列中插入一个空值以保持空白,该怎么办?

2 个答案:

答案 0 :(得分:1)

首先,从.NET创建查询不是一个好习惯。

  1. 使用Query并将值作为参数传递给SqlCommand,或者
  2. 使用存储过程并将值作为参数传递给SqlCommand
  3. 或者,您可以使用现有方法并传递null,例如:
  

string save_emp_query =“ INSERT INTO ElephantData VALUES('” +   txtidentyno.Text +“','” + txtelname.Text +“','” + cmbspecies.Text +   “','” + gen +“','” + med +“','” + dtpdob.Text +“',null,'” +   cmbcon.Text +“')”

如果您可以遵循方法1和2,则可以参考以下代码:

// 1. declare command object with parameter
SqlCommand cmd = new SqlCommand(
"INSERT INTO ElephantData VALUES(@IdNo, @Species ....., conn);

// 2. define parameters used in command object
    SqlParameter param  = new SqlParameter();
    param.ParameterName = "@IdNo";
    param.Value         = txtidentyno.Text;
    SqlParameter param2  = new SqlParameter();
    param2.ParameterName = "@Species";
    param2.Value         = cmbspecies.Text;

// 3. add new parameter to command object
    cmd.Parameters.Add(param);

// 4. Finally Execute Query
cmd.ExecuteNonQuery();

答案 1 :(得分:0)

也许您需要这样的条件

if(dtpdoa.Text == ''){
 String save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "',null,'" + cmbcon.Text + "')";
}else{
 String save_emp_query = "INSERT INTO ElephantData VALUES('" + txtidentyno.Text + "','" + txtelname.Text + "','" + cmbspecies.Text + "','" + gen + "','" + med + "','" + dtpdob.Text + "','" + dtpdoa.Text + "','" + cmbcon.Text + "')";
}