c# mysql datetime 判断为空 dbnull_转:SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究...
SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究
在SqlServer 2000中datetime 的空值即默认值为1900-01-01 00:00
:00,C#中DateTime的空值是最小值0001-01-01 00:00:00,对于
数据库的插入,更新为空值的日期值来说多少有点不如人所愿。比如
说我插入的是空值我取出的也要是空值,但SqlServer偏偏给了我一
个默认值。有点无奈。对于如何协调二者,给我带来了不少麻烦。
引起这样的原因是:DateTime和Int,Double一样都是值类型,必须
有一个值。
解决的办法:
1.从数据库的角度:把该字段的类型改为自定义的字符串型,该字符
串格式为日期样式。这种办法比较简单,其实就是字符串型,插入时
对插入的字符串做日期的正则判断。
2.这种方法是从网上搜索出于:
300.entry 对数据类型null的处理当C#与SQL Server数据类型定义不
一致时需要怎么处理呢?
例如一个DateTime,当DB中该字段可以为空时,要求它既能用C#的
DateTime赋值,又可以赋SQL Server的null值。
我采用的解决方法是,在Model对应的类中,将该字段对应的
property的数据类型设为object。
赋值时,判断,若是空值则赋给DBNull.Value。
取值时,判断,若取到DBNull.Value则显示null,否则要进行一次数
据转换。
这是为了DA在对DB操作时,若将此字段作为参数,只需要将get到的
值直接赋给salParameter即可。(若model的get不转换,则DA中要判
断是否要转换。因为C#的DBNull和DateTime均可赋给
sqlDBType.DateTime;反之,sql中取到的空值是以DBNUll.Value出
现的,不能赋给C#的DateTime。
Forum有一个很大的特点,就是在调用DB.cs的方法时,参数的类型几
乎都是object。在sp中再仔细定义各参数的格式,由sql自己转换。
对于可空的参数,在sp中定义=null即可。Forum传一个null参数的情
况很多,总是在接收方去判断参数,有些参数是null写入数据库的;
但是有些参数如果为null是有其它意义的,需要条件分支代码去处理
。而我习惯于参数首先初始化,如果有不同情况共用同一个方法则增
加一个参数用于判断。我认为使参数为null也有实际意义不是很好的
办法,因为会造成一些不明意义的条件分支,对以后的升级和维护造
成潜在的危险。
3.如下语句能实现插入:
insert into Employees (lastname,firstname,hiredate) values
('hu','shuai',null),
insert into Employees (lastname,firstname,hiredate) values
('hu','shuaishuai','')
有着明显不同的结果。可以在Sql 语句上实现。但在程序中,特别是
面向对象的程序设计中,在加上三层架构的一些问题。实现起来颇为
不便。所以我正在努力寻找一种方法巧妙的实现之,也希望大家给点
建议。
三 。
最简单的方法:
在页面赋一个默认日期
在sql语句中参数赋值时判断参数值是否等于默认日期 如果等于为参
数赋值DBNull.Value
c# mysql datetime 判断为空 dbnull_转:SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究...相关推荐
- c# mysql datetime 判断为空 dbnull_转:SqlServer中的datetime类型的空值和c#中的DateTime的空值的...
SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究 在SqlServer 2000中datetime 的空值即默认值为1900-01-01 00:00 :00,C# ...
- MySQL时间戳和unix时间戳区别、MySQL中的时间类型
文章目录 1 时间戳 1.1 unix时间戳(unix timestamp) 1.2 MySQL时间戳(timestamp) 2 MySQL中timestamp和datetime的不同点 3 MySQ ...
- MySQL如何判断不为空
MySQL如何判断不为空 一.前言 二.使用步骤 1.函数的语法: 2.实例 3.查询字段结果为空则返回另一个字段 一.前言 MySQL 中可以使用IFNULL函数判断一个值是否不为空. MySQL ...
- MySQL如何判断日期(datetime)是否是同一天
MySQL如何判断日期(datetime)是否是同一天 SELECT COUNT(1) FROM`lolita`.`ip` WHERE `uid`=8 AND TO_DAYS(`time`)=TO_D ...
- postgresql 判断是空的_PostgreSQL判断是否为空coalesce
coalesce(expr1,expr2,expr3...) 直到找到一个非null值返回,右边的表达式则不参与运算:若所有为null,返回null. eg:判断json是否包含某属性,若无,则取默认 ...
- 判断为空:null、undefined、空字符串、中文空格
/*判断为空*/ private isNull=data=> (data == null || (data.toString().replace(/\ |\ /g, "") ...
- Mybatis if test 中int integer判断非空的坑
Mybatis 中,alarmType 是int类型.如果alarmType 为0的话,条件判断返回结果为false,其它值的话,返回true. 1 <if test="alarmTy ...
- mysql语句中把string类型字段转datetime类型
mysql语句中把string类型字段转datetime类型 在mysql里面利用str_to_date()把字符串转换为日期 此处以表h_hotelcontext的Start_time和End_ti ...
- java 多态判断非空_收藏Java 面试题全梳理
脚本之家 你与百万开发者在一起 来源 | Java建设者(ID:javajianshe) 作者 |cxuan 如若转载请联系原公众号 Java 基础篇 Java 有哪些特点 并发性的:你可以在其中执行 ...
最新文章
- 一位IT從業人員的心路歷程
- 如何在返回String的Spring MVC @ResponseBody方法中响应HTTP 400错误?
- LeetCode:Length of Last Word
- 问题一:使用AndroidDriver而非原来的AppiumDriver的原因
- 深度学习之迁移学习实现神奇宝贝识别
- java线程池参数面试题,附赠复习资料
- leetcode89 (2022.1.8)
- ping和telnet的区别
- Flutter时间工具类封装
- Java Swing中键盘事件的处理
- 红旗linux mysql_请问红旗Linux下,安装Mysql时,应该下载mysql 的哪一种rpm包?谢谢
- 1算法:控制字幕左右移动
- 誰毀了全新Vista電腦﹖
- 谁有能锁屏不崩溃的录屏软件给推荐个。。。。
- 关于百度富文本编辑器UEditor中ctrl+enter键发送消息的解决方案
- 微信小程序系列一:获取头像昵称
- 罗克韦尔AB PLC RSLogix数字量IO模块基本介绍
- kitti数据集评估文档
- hackbar2.1.3 安装教程(附下载地址 )Firefox Chrome
- ubuntu安装dingding