`

C#中往数据库插入空值的问题

 
阅读更多

在用C#往数据库里面插入记录的时候, 可能有的字段你不赋值,那么这个字段的值就为null, 如果按一般想法的话,这个值会被数据库接受, 然后在数 据表里面显示为NUll, 实际上这就牵扯到一个类型的问题, C#中的NUll于SQL中的null是不一样的, SQL中的null用C#表示出来就 是DBNull.Value, 所以在进行Insert的时候要注意的地方.

Example:
       SqlCommand cmd=new  SqlCommand("Insert into Student values(@StuName,@StuAge)" ,con);
       cmd.parameters.add("@StuName" ,stuname);
       cmd.parameters.add("@StuAge" ,stuage);
       cmd.ExecuteNonQuery();

这些代码看似没有问题, 其实当stuname于stuage中的任何一个值为null的时候, 这代码就会报错...汗!!!

解决办法:

        其实最简单的办法就是进行判断, 当stuname或stuage为空时, 插入DBNull.Value.
        但是这样当一个数据库有很多字段时或者是有很多张表时, 代码就会很多了,我也没有找到特别方便的方法,我的方法是:写一个静态的方法来对变量的值进行判断:

Example :     

        static  public  object  SqlNull(object  obj)
        {
            if  (obj == null )
                return  DBNull.Value;

            return  obj;
        }

       //用上面的方法对参数进行了判断
       cmd.parameters.add("@StuName" ,SqlNull(stuname));
       cmd.parameters.add("@StuAge" ,SqlNull(stuage));
       cmd.ExecuteNonQuery();

分享到:
评论

相关推荐

    c#往sqlserver2000数据库中插入时间型数据的空值

    在C#编程中,与SQL Server 2000数据库交互是常见的任务,尤其是在处理时间型数据时。这里我们关注的是如何正确地插入时间型数据的空值(NULL)。在SQL Server 2000中,时间型数据类型通常包括`datetime`,它存储日期...

    c# 与数据库相连后 如何实现用户注册的功能

    2. **数据验证**:在插入数据之前,进行必要的验证是非常重要的,包括检查空值、格式正确性等。虽然示例中未明确展示,但在实际应用中,应加入此类验证逻辑。 3. **SQL语句构建**:使用字符串拼接来构建SQL插入语句...

    C#如何将Excel导入数据库

    接着打开数据库连接,然后应该调用`ExecleDs`方法获取Excel数据,再使用`SqlBulkCopy`或其他方式将数据插入到数据库中。`SqlBulkCopy`是一个高效的工具,用于将大量数据从一个数据源快速复制到另一个数据源,非常...

    c# 实现excel数据导入到数据库

    在C#中实现Excel数据导入到数据库是一项常见的任务,尤其在数据分析、报表生成或系统集成等领域。这个过程通常包括读取Excel文件中的数据,处理这些数据,然后将它们存储到数据库中。以下是一些关键的知识点和步骤:...

    C#+存取SqlServer中的Image类型

    在.NET开发环境中,C#是一种常用的编程语言,用于构建各种应用程序,包括与数据库交互的系统。在处理SQL Server数据库时,经常会遇到存储图像或其他二进制大数据类型的需求,这就是SQL Server中的`Image`类型发挥...

    C#中数据库的更新和删除记录的两种实现方式.pdf

    在C#中,数据库操作是常见的任务,包括记录的更新和删除。这两种基本操作可以通过不同的方式实现,通常涉及使用DataSet、DataTable、DataAdapter等ADO.NET组件。以下将详细阐述这两种实现方式。 首先,我们来看更新...

    c#WinForm操作Access数据库.pdf

    总的来说,这段代码展示了如何在C# WinForm应用程序中使用ADO.NET组件(如`OleDbConnection`, `OleDbCommand`, 和 `OleDbDataAdapter`)与Access数据库进行交互,实现数据的验证、查询和插入。在实际应用中,还需要...

    C#打开ACCESS基本操作

    在Access中,你可以设计表结构,定义字段类型、长度、是否允许空值等。理解这些概念对于编写高效的数据库操作代码至关重要。 8. **性能优化** 考虑索引的使用,对频繁查询的字段创建索引可以显著提高查询速度。...

    VS2005(c#)项目调试问题解决方案集锦(二)

    当向数据库插入日期时间值时,如果值超出SqlDateTime类型的范围(1753年1月1日至9999年12月31日),就会出现此错误。检查并确保插入的日期时间值在这个范围内,或者处理空值,避免插入非法日期。 6. **属性与方法...

    C# 如何以代码来创建、设置、修改、压缩、SQL Server数据库,在数据库中新建数据表...(共11个针对数据的操作示例)

    在C#编程中,与SQL Server数据库进行交互是常见的任务,包括创建数据库、设置数据库属性、修改数据库结构、压缩数据库以及在数据库中进行各种数据操作。以下是对这些知识点的详细说明: 1. **创建数据库**: 使用`...

    Excel导入导出数据库小工具(附源码)

    在本例中,我们可能使用SqlCommand对象执行SQL INSERT语句,将DataTable中的数据逐条插入数据库。对于SqlServer、MySQL、Oracle这些不同的数据库系统,只需适配相应的连接字符串和SQL语法即可。 其次,Excel导出...

    C#从excel导入数据到sql server

    本项目标题为“C#从excel导入数据到sql server”,它提供了一个使用C#编程语言解决此类问题的解决方案。下面我们将深入探讨这个话题,了解如何通过C#实现Excel数据到SQL Server的导入。 1. C#编程语言:C#是一种...

    C#登陆和主界面

    1. 数据验证:在C#中,我们可以使用内置的验证方法对用户输入进行检查,防止空值或无效数据。同时,应考虑大小写敏感性、特殊字符限制等安全因素。 2. 数据库连接:VS2005支持SQL Server数据库,包括SQL Server ...

    如何将数据库中的NUll写入到数据库中去

    在编程语言中,如Java、Python或C#,当我们通过API或库与数据库交互时,需要确保在对应字段设置为null。例如,在Java的JDBC中: ```java PreparedStatement pstmt = connection.prepareStatement("INSERT INTO ...

    excel数据导入数据库

    6. 错误处理:在插入过程中,可能会遇到数据不匹配、格式错误等问题,需要有适当的错误处理机制,例如记录错误日志,或者跳过错误行继续处理其他数据。 在提供的文件列表中,我们看到"test.aspx"和"test.aspx.cs",...

    net6 控制台+ log4net+写数据库+自定义字段

    - 为了存储日志,需要在数据库中创建对应的表,比如`LogTable`,确保有与配置文件中`commandText`匹配的列,包括自定义字段`CustomField`。 通过以上步骤,你就可以在.NET 6控制台应用中利用log4net进行日志记录,...

    mysql数据库武洪萍版第四章习题与答案.docx

    在习题 8 中,我们可以看到关于数据库完整性的叙述,例如向关系 SC 插入元组时,S# 和 C# 都不能是空值(NULL)。 9、关系查询:在数据库中,关系查询是指从多个表中检索数据。在习题 9 中,我们可以看到关系查询的...

    导入excel到数据库

    4. **构造SQL语句**:根据数据的结构和目标表的设计,我们需要构造INSERT INTO语句来将数据插入到数据库中。如果数据量大,批量插入会比单条插入更有效率。 5. **执行SQL语句**:使用数据库连接执行构造好的SQL语句...

    excel数据导入到sql数据库(c#)

    在IT行业中,数据处理是一项核心任务,而将Excel数据导入SQL数据库是常见的需求之一。本文将详细介绍如何使用C#编程语言实现这一功能。 首先,我们需要理解C#与Excel和SQL数据库之间的交互。C#是微软开发的一种面向...

Global site tag (gtag.js) - Google Analytics