C#:往数据库插入/更新时候关于NUll空值的处理
前几天遇到一个问题,找了好久才找到解决办法。不过也很开心,终于解决了。
问题:前端当我数据为空的时候不赋值,传到后台也为空的时候(注意:是Null不是""),SqlCommand对传送的参数中如果字段的值是NULL具然不进行更新操作。
插入、更新操作都不进行,现在咱们拿插入为例(更新同理)。
例:
public bool Insert(SysNotify notify)
{
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Title", notify.Title),
new SqlParameter("@NotifyType", notify.NotifyType),
new SqlParameter("@NotifyContent", notify.NotifyContent)
}; string sqlStr = @" INSERT INTO SysNotify(Title, NotifyType, NotifyContent)
VALUES(@Title, @NotifyType, @NotifyContent) "; return DbHelper.ExecuteNonQuery(CommandType.Text, sqlStr, parameters);
}
这里就是当notify.Title为Null时,就会报错,所以要对notify.Title这个字段处理一下。
解决办法:
我使用扩展方法封装了一个静态方法:
#region 判断数据为空时,获取其DBNull的值 徐悦 2019年2月23日17:16:35
/// <summary>
/// 判断数据为空时,获取其DBNull的值
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static object GetDBNull(this object value)
{
if (value == null)
{
return DBNull.Value;
}
return value;
}
#endregion
然后按照下面这种形式调用就可以处理数据为空时的处理
public bool Insert(SysNotify notify)
{
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@Title", notify.Title.GetDBNull()),
new SqlParameter("@NotifyType", notify.NotifyType),
new SqlParameter("@NotifyContent", notify.NotifyContent.GetDBNull())
}; string sqlStr = @" INSERT INTO SysNotify(Title, NotifyType, NotifyContent)
VALUES(@Title, @NotifyType, @NotifyContent) "; return DbHelper.ExecuteNonQuery(CommandType.Text, sqlStr, parameters);
}
按照标红处方式使用就可以解决当数据为空时,SqlCommond执行不成功的问题。
bingo(o゜▽゜)o☆[BINGO!]
C#:往数据库插入/更新时候关于NUll空值的处理的更多相关文章
- C#中往数据库插入/更新时候关于NUll空值的处理
本文转载:http://blog.csdn.net/chybaby/article/details/2338943 本文转载:http://www.cnblogs.com/zfanlong1314/a ...
- DButils工具类能够用来获取数据库连接向数据库插入更新删除对象2
package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import ja ...
- Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
需要了解的知识 1.触发器 2.sqlbulkcopy 我的用途 开发数据库同步的工具,需要大批量数据插入和数据更新. 方式 使用SqlBulkCopy类对数据进行数据批量复制,将需要同步数据的表新建 ...
- 数据库 插入时 碰到NULL报错判断的一种方法(技巧)
//public static object ToDBNull(object value) 判断插入数据的时候个别参数不能为空的时候做的判断方法 //{ // if (value == null) / ...
- 【转】编写微信聊天机器人4《聊天精灵WeChatGenius》:实时获取到微信聊天消息,hook数据库插入操作。
接上篇,使用Xposed来hook微信,找到微信进程:https://blog.csdn.net/weixin_42127613/article/details/81839537 既然已经找到了微信进 ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
- MongoDB数据库中更新与删除数据
MongoDB数据库中更新与删除数据 在MongoDB数据库中,可以使用Collection对象的update方法更新集合中的数据文档.使用方法如下所示: collection.update(sele ...
- MySQL_插入更新 ON DUPLICATE KEY UPDATE
平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件. 此时 插入数据的时候 ,经常会有这样的情况: 我们想向数据库插入一条记录: 若数据表中存在以 ...
- 【SQL模板】四.插入/更新 列模板TSQL
---Name: 插入/更新 列模板.sql ---Purpose: 用于更新 数据库中 列 的脚本模板 ---Author: xx ---Time: 2015-12-18 10:26:06 ---R ...
随机推荐
- Shell中map的使用
Shell中的map与array有很多的相似之处,array操作:https://www.cnblogs.com/qq931399960/p/10786111.html 一.在使用map时,需要先声明 ...
- MongoDB安装与使用体验
1.获取并安装 具体的安装包可以到官方网站下载:http://www.mongodb.org/downloads 我看着教程就下载了linux版本吧,也不是很复杂.包的体积有点大. 安装过程比较简单, ...
- Use Wait & Notify to Implement Two Threads Run Alternatively
public class ThreadCommunication { public static void main(String[] args) { Business business = new ...
- Visual Studio高效实用的扩展工具、插件
说明: 对一个有想法的程序员来说,善于使用一款高效的开发工具是很重要的,今天给大家介绍的是宇宙第一IDE vs用起来很不错的开发工具,假如大家觉得不错也可以尝试的用用,毕竟对于我们这些一天一大半的时间 ...
- Python就业指导
一年一度的金三银四招聘旺季又要到了,最近有很多同学希望我能给他们一些关于python的就业指导:之前出过一期关于java的就业指导,但是并不是很完善,所以希望这期关于python的就业指导能够很全面很 ...
- Java Spring MVC框架搭建(一)
环境准备 >>>>>>java JDK和tomcat,eclipse 1.创建项目 2.项目名称自定义,这边为demo 3.我们已经创建完一个动态网站的项目,还得下 ...
- AsyncTask原理
一.概述 Android开发中我们通常让主线程负责前台用户界面的绘制以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务.Android中的工作者线程主要有AsyncTask.IntentSe ...
- @vue-cli3创建项目报错:ERROR command failed: npm install --loglevel error --registry=https://registry.npm.taobao.org --di
使用@vue-cli3时 在你感觉所以配置都搞好开始创建项目时,不停的报错,就是创建不成功 清npm缓存也不行 改淘宝镜像也不行 就快奔溃了,最后最终(其实我在凑150字,为了能发到首页给更多采坑的兄 ...
- 基于Twitter的Snowflake算法实现分布式高效有序ID生产黑科技(无懈可击)
参考美团文档:https://tech.meituan.com/2017/04/21/mt-leaf.html Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万 ...
- 1.4部署到IIS「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.N ...