当前位置: 首页 > 面试题库 >

插入语句不会插入Null值

狄赞
2023-03-14
问题内容

我正在尝试像这样从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。

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


 类似资料:
  • 问题内容: 我想每次插入带有日期+ 1的行。这是一个简单的SQL循环。我正在使用SSIS,因此StartDate和Enddate是变量。 这是我的代码: 错误信息: 消息156,级别15,状态1,行11关键字’select’附近的语法错误。 问题答案: 无需在声明。 代替 和

  • 本文向大家介绍必须会的SQL语句(三) 数据插入,包括了必须会的SQL语句(三) 数据插入的使用技巧和注意事项,需要的朋友参考一下 1.规范一些使用插入语句的小规范   1)中文字符串前 最好 加一个N   2)列名用中括号 扩起来   像这样  [列名]   2.常规写法 Insert into tableName ( [column1] , [column2] ) values (N'中文',

  • 问题内容: 我从网络以以下格式下载了800条语句: 我听说过事务,s和使用,但是我不知道哪种情况更适合这种情况。 截断后将它们插入sqlite数据库的最佳方法是什么? 问题答案: 如果要运行多个查询,则为了提高数据完整性和性能,应该使用事务。这是一个代码,可让您了解如何执行此操作:

  • 问题内容: 我想知道是否有可能在SQL代码的CASE语句中包含INSERT INTO语句。 这是我要执行的操作的粗略伪代码: 问题答案: 您将需要用语句代替。大概是这样的(不确定db2的语法):

  • 这是我的插入代码,后面是创建表的代码 我不想插入任何东西到列占用,我不知道为什么这是发生的或如何修复它。我只想在tblGrave(GraveName)中插入值。任何帮助都会很好。

  • 我尝试从本地磁盘(Windows 10)向我的RDS MySQL数据库插入一个blob。然而,我的查询没有插入blob。新行包含所有其他列,但blob为空。 以下是我尝试过的: 我设置了文件的读/写权限 安全文件设置为/tmp。。。我不知道这是什么意思。这是路径还是变量?如果它是一个变量,我已经尝试从用户/系统变量“TMP”的路径上传blob,但没有成功。我无法更改安全文件,因为RDS允许更改。。