惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
量子位
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
T
Tenable Blog
博客园 - 叶小钗
宝玉的分享
宝玉的分享
P
Privacy International News Feed
T
Tor Project blog
博客园_首页
AWS News Blog
AWS News Blog
雷峰网
雷峰网
C
Cisco Blogs
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 【当耐特】
T
Threat Research - Cisco Blogs
Last Week in AI
Last Week in AI
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Schneier on Security
博客园 - Franky
W
WeLiveSecurity
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
腾讯CDC
L
Lohrmann on Cybersecurity
J
Java Code Geeks
美团技术团队
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX

博客园 - Eric.Chai

在WebService中不能返回SqlDataReader 控件生命周期 Solution:TF10216: Team Foundation services are currently unavailable SelectedValue小技巧 web.config点滴:更改login控件对密码安全性的要求 ASP.NET2.0网站配置的数据库连接失败问题 什么是LINQ? MSCRM自动填写当前时间 DIV和SPAN的区别 MSCRM3.0备份与还原 MSCRM IFrame 应用 关于界面元素的隐藏 ASP.NET(c#)实现防止同一用户同时登陆 简体中文转换繁体中文 使用数组动态赋值SQL IN ()条件 C#读文本文件 DatSet与DataTable的关系 SharePoint Server 2007 Web内容管理中的几个关键概念 英语面试题 --Algorithms
“奇怪”的数据类型
Eric.Chai · 2008-03-12 · via 博客园 - Eric.Chai

一直以来,对于某些数据,如DateTime、int等,不支持为其赋值为null,但如果数据库中为null,我们就需要用一些特殊手段来处理,如赋值为MinValue等,然后判断如果值为MinValue时,就写入数据库为null。
  也有很多人开始使用网络上下载的Jssor等系列数据类型,它能很好的解决数据类型方面导致的问题,但一些常用的三方控件,如DevExpress并不支持自定义的数据类型,这就给使用Jssor等系列数据类型造成了不小的障碍。
  但是今天,我却发现可以定义如DateTime?、int?等形式的数据类型,然后用HasValue属性来判断是否为null,用Value属性来访问值。
  如下面的代码:

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Text;

    4 

    5 namespace ConsoleApplication1

    6 {

    7     class Program

    8     {

    9         static void Main(string[] args)

   10         {

   11             // DateTime?

   12             DateTime? datetime1 = new DateTime();

   13 

   14             datetime1 = null;

   15             Console.Write(datetime1 + "\n");

   16             Console.Write(datetime1.HasValue + "\n");

   17             try

   18             {

   19                 Console.Write(datetime1.Value + "\n");

   20             }

   21             catch

   22             {

   23                 Console.Write("Error!" + "\n");

   24             }

   25             if (datetime1 == null) Console.Write("Ok 1!" + "\n");

   26             if (datetime1.HasValue == false) Console.Write("Ok 2!" + "\n");

   27 

   28             datetime1 = DateTime.Now;

   29             Console.Write(datetime1 + "\n");

   30             Console.Write(datetime1.HasValue + "\n");

   31             try

   32             {

   33                 Console.Write(datetime1.Value + "\n");

   34             }

   35             catch

   36             {

   37                 Console.Write("Error!" + "\n");

   38             }

   39             if (datetime1 != null) Console.Write("Ok 3!" + "\n");

   40             if (datetime1.HasValue == true) Console.Write("Ok 4!" + "\n");

   41 

   42             // DateTime

   43             DateTime datetime2 = new DateTime();

   44             datetime2 = null// Error

   45 

   46             Console.ReadLine();

   47         }

   48     }

   49 }

请单击查看原始尺寸的图片。

  注释掉标记为Error的代码后,运行结果如下图:

  有了这些奇怪的数据类型后,我们以后设计数据库的时候就不会为这些为null的值发愁了:)