我正在尝试像这样从C#向我的数据库中插入一个空值:
SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES ('" + employeeID.Text + "','" + name.Text + "','" + age.Text + "','" + phone.Text + "','" + DBNull.Value + "')", connection);
DBNull.Value是日期可以在的地方,但我希望它等于null,但它似乎将默认日期设置为1900 …
改成:
SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES ('" + employeeID.Text + "','" + name.Text + "','" + age.Text + "','" + phone.Text + "',null)", connection);
DBNull.Value.ToString() 返回空字符串,但您希望改为null。
DBNull.Value.ToString()
但是,这种构建查询的方式可能会导致问题。例如,如果您的字符串之一包含引号’,则结果查询将引发错误。更好的方法是使用参数并在SqlCommand对象上进行设置:
SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES (@empId,@name,@age,@phone,null)", connection); command.Parameters.Add(new SqlParameter("@empId", employeeId.Text)); command.Parameters.Add(new SqlParameter("@name", name.Text)); command.Parameters.Add(new SqlParameter("@age", age.Text)); command.Parameters.Add(new SqlParameter("@phone", phone.Text));