小编典典

插入语句不会插入Null值

sql

我正在尝试像这样从C#向我的数据库中插入一个空值:

SqlCommand command = new SqlCommand("INSERT INTO Employee
VALUES ('" + employeeID.Text + "','" + name.Text + "','" + age.Text
        + "','" + phone.Text + "','" + DBNull.Value + "')", connection);

DBNull.Value是日期可以在的地方,但我希望它等于null,但它似乎将默认日期设置为1900 …


阅读 156

收藏
2021-04-22

共1个答案

小编典典

改成:

SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES ('" + employeeID.Text + "','" + name.Text + "','" + age.Text + "','" + phone.Text + "',null)", connection);

DBNull.Value.ToString() 返回空字符串,但您希望改为null。

但是,这种构建查询的方式可能会导致问题。例如,如果您的字符串之一包含引号’,则结果查询将引发错误。更好的方法是使用参数并在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));
2021-04-22