pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法

C# ADO.NET: nulls and DbNull -- is there more efficient syntax?(C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?)
本文介紹了C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我有一個(gè) DateTime?,我正嘗試使用 DbParameter 將其插入到字段中.我正在像這樣創(chuàng)建參數(shù):

I've got a DateTime? that I'm trying to insert into a field using a DbParameter. I'm creating the parameter like so:

DbParameter datePrm = updateStmt.CreateParameter();
datePrm.ParameterName = "@change_date";

然后我想將 DateTime? 的值放入 dataPrm.Value 中,同時(shí)考慮 nulls.

And then I want to put the value of the DateTime? into the dataPrm.Value while accounting for nulls.

我最初以為我會很聰明:

I thought initially I'd be clever:

datePrm.Value = nullableDate ?? DBNull.Value;

但由于錯誤而失敗

運(yùn)算符??"不能應(yīng)用于System.DateTime?"類型的操作數(shù)和'System.DBNull'

Operator '??' cannot be applied to operands of type 'System.DateTime?' and 'System.DBNull'

所以我想這只有在第二個(gè)參數(shù)是第一個(gè)參數(shù)的不可為空版本時(shí)才有效.然后我去了:

So I guess that only works if the second argument is a non-nullable version of the first argument. So then I went for:

datePrm.Value = nullableDate.HasValue ? nullableDate.Value : DBNull.Value;

但這也不起作用:

無法確定條件表達(dá)式的類型,因?yàn)?System.DateTime'和'System.DBNull'之間沒有隱式轉(zhuǎn)換

Type of conditional expression cannot be determined because there is no implicit conversion between 'System.DateTime' and 'System.DBNull'

但我不想在這些類型之間轉(zhuǎn)換!

But I don't want to convert between those types!

到目前為止,我唯一能開始工作的是:

So far the only thing I can get to work is:

if (nullableDate.HasValue)
  datePrm.Value = nullableDate.Value;
else
  datePrm.Value = DBNull.Value;

這真的是我寫這篇文章的唯一方式嗎?有沒有辦法讓單行使用三元運(yùn)算符工作?

Is that really the only way I can write this? Is there a way to get a one-liner using the ternary operator to work?

更新:我真的不明白為什么 ??版本不起作用.MSDN 說:

Update: I don't really get why the ?? version doesn't work. MSDN says:

??如果不為空,運(yùn)算符返回左操作數(shù),否則返回右操作數(shù).

The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.

這正是我想要的!

更新 2: 嗯,最后很明顯:

datePrm.Value = nullableDate ?? (object)DBNull.Value;

推薦答案

啊哈!我找到了比@Trebz 更有效的解決方案!

Ah ha! I found an even more efficient solution than @Trebz's!

datePrm.Value = nullableDate ?? (object)DBNull.Value;

這篇關(guān)于C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Why shouldn#39;t I always use nullable types in C#(為什么我不應(yīng)該總是在 C# 中使用可空類型)
C# HasValue vs !=null(C# HasValue vs !=null)
How to set null value to int in c#?(如何在c#中將空值設(shè)置為int?)
How to handle nulls in LINQ when using Min or Max?(使用 Min 或 Max 時(shí)如何處理 LINQ 中的空值?)
Method call if not null in C#(在 C# 中如果不為 null 的方法調(diào)用)
GetType on Nullable Boolean(可空布爾值上的 GetType)
主站蜘蛛池模板: 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | CPSE安博会 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵| 无锡门窗-系统门窗-阳光房-封阳台-断桥铝门窗厂[窗致美] | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 无味渗透剂,泡沫抑尘剂,烷基糖苷-威海威能化工有限公司 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 标准品网_标准品信息网_【中检计量】 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 裹包机|裹膜机|缠膜机|绕膜机-上海晏陵智能设备有限公司 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 |