c#中如何把日期型设置为空

wcl0201wcl 2009-07-16 01:19:20
c#中如何把日期型设置为空
...全文
2429 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
kldx5092 2009-07-16
  • 打赏
  • 举报
回复
可以考虑用
DateTime.MinValue
代理null
syfsz 2009-07-16
  • 打赏
  • 举报
回复
C# 中 DateTime 是值类型,无法直接赋null,Sql DateTime字段中 如果允许为空的话 可以插入 null
睿睿爸爸 2009-07-16
  • 打赏
  • 举报
回复
24楼是对的,如果使用''必然是系统默认值,日期型字段不能那么用
不过楼主这编程习惯......
建议调整下哈
syfsz 2009-07-16
  • 打赏
  • 举报
回复
string sql = " insert tablename(Col1,myDateTime)values('ss'," + (sTime == "" ? "null" : "'" + sTime + "'") + ")";
acqy 2009-07-16
  • 打赏
  • 举报
回复
DateTime是值类型,因此无法设置null。
硬是要设置,请:DateTime? d = null;
  • 打赏
  • 举报
回复
+ "','" + TurnoverTime_r+ "')";
这里有问题,如果一定要用string,要加个判断语句:
if (String.IsNullOrEmpty(TurnoverTime_r))
+ "',null)";
else
//照你上面那样写
wcl0201wcl 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 hbxtlhx 的回复:]
这样的代码很不好。这么乱,怎么不写一个存储过程呢,就是使用一个格式化也好啊。
[/Quote]

那些我还不会呢~~~~~
北京的雾霾天 2009-07-16
  • 打赏
  • 举报
回复
这样的代码很不好。这么乱,怎么不写一个存储过程呢,就是使用一个格式化也好啊。
wcl0201wcl 2009-07-16
  • 打赏
  • 举报
回复
我做的是 录入模块 有点长~~~
string sql = "insert into Run_BIMS_BuildingsInfo_Rental(BType,FType,Bregion,Location,CArea,DExtent,Floor,Towards,CDecade,HouseFacility,Traffic,RentWay,PaymentMatch,Rent,Deposit,Term,MinRentTime,LiveDate,Remarks,Contact,Tel,TransactionState,ShareType,EnterTime,UpdateTime,code,TurnoverTime)values('" + BType_r + "','" + FType_r + "','" + Bregion_r + "','" + Location_r + "','" + CArea_r + "','" + DExtent_r + "','" + Floor_r + "','" + Towards_r + "','" + CDecade_r + "','" + HouseFacility_r + "','" + Traffic_r + "','" + RentWay_r + "','" + PaymentMatch_r + "','" + Rent_r + "','" + Deposit_r + "','" + Term_r + "','" + MinRentTime_r + "','" + LiveDate_r + "','" + Remarks_r + "','" + Contact_r + "','" + Tel_r + "','" + TransactionState_r + "','" + ShareType_r + "','" + EnterTime_r + "','" + UpdateTime_r + "','" + code_r + "','" + TurnoverTime_r+ "')"; //插入数据
睿睿爸爸 2009-07-16
  • 打赏
  • 举报
回复
楼上是存储过程用的,你要是存储过程,应该就用的上
睿睿爸爸 2009-07-16
  • 打赏
  • 举报
回复
怕不是这个问题,我怀疑楼主插入数据库的时候做了判断
如果TurnoverTime_r =""该字段就不维护
建议跟程序看看SQL语句部分
wcl0201wcl 2009-07-16
  • 打赏
  • 举报
回复
SqlParameter par;
par["@dt"]=dt;

这是什么意思

ivws_19 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhlei616 的回复:]
引用 7 楼 wcl0201wcl 的回复:
日期  =null 不好用 提示有错

声明的时候要声明成 DateTime? 型
[/Quote]
这样就可以设置为空了
北京的雾霾天 2009-07-16
  • 打赏
  • 举报
回复 1
不用DateTime? 就用object怎么了?

有值的时候就放一个DateTime,没有值的时候就是个空值,也可以放一个DBNull.Value。比如:

object dt=DBNull.Value;
if (true)
{
dt=DateTime.Now;
}

SqlParameter par;
par["@dt"]=dt;
wcl0201wcl 2009-07-16
  • 打赏
  • 举报
回复
我数据库中的格式是日期型的
我有两个选项 “成交”和“未成交”,当我点成交的时候 数据库中有当前的时间
当我选的是未成交的时候 数据库中的 时间就变成 默认时间 , 但是我想把这个 默认时间清空
haonanxxx 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 pooky 的回复:]
DBNull.Value
[/Quote]
right
pooky 2009-07-16
  • 打赏
  • 举报
回复
DBNull.Value
zhlei616 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wcl0201wcl 的回复:]
日期  =null 不好用 提示有错
[/Quote]
声明的时候要声明成 DateTime?
睿睿爸爸 2009-07-16
  • 打赏
  • 举报
回复
另确认你数据库中字段类型是什么
睿睿爸爸 2009-07-16
  • 打赏
  • 举报
回复
晕啊,
1.能否确认一下程序是否跑到else部分
2.能否看一下保存的SQL语句
加载更多回复(9)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧