C#中DBNull问题
当数据库中一个字段不是必填项时,在往数据库中插入数据的时候往往会插入一个空字符串就草草了事了。在这里用DBNull可以解决这个问题
/// <summary>
/// 插入数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, RoutedEventArgs e)
{
string name = txtName.Text;
string age = txtAge.Text;
string height = txtHeight.Text;
object objName;
if (name.Length <= )
{
objName = DBNull.Value;
}
else
{
objName = name;
}
object objAge;
if (age.Length <= )
{
objAge = DBNull.Value;
}
else
{
objAge = age;
}
object objHeight;
if (height.Length <= )
{
objHeight = DBNull.Value;
}
else
{
objHeight = height;
}
SqlHelper.ExecuteNonQuery(@"insert into T_Person(Name,Age,Height) values (@Name,@Age,@Height)",
new SqlParameter("@Name", objName),
new SqlParameter("@Age", objAge),
new SqlParameter("@Height", objHeight));
}
/// <summary>
/// 读出数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, RoutedEventArgs e)
{
DataSet ds = SqlHelper.ExecuteDataSet("select * from T_Person where id=2"); string name;
if (ds.Tables[].Rows[]["Name"] == DBNull.Value)
{
name = null;
}
else
{
name = ds.Tables[].Rows[]["Name"].ToString();
}
int? age;
if (ds.Tables[].Rows[]["Age"] == DBNull.Value)
{
age = null;
}
else
{
age = int.Parse(ds.Tables[].Rows[]["Age"].ToString());
}
txtName.Text = name;
txtAge.Text = age.ToString();
txtHeight.Text=ds.Tables[].Rows[]["Height"].ToString();
}

C#中DBNull问题的更多相关文章
- C#中DBNull.Value和Null的用法和区别
DBNull.Value,, 是适用于向数据库的表中插入空值.而 null,是指在程序中表示空引用. 或者对象为空.就是没有实例化. row[column]的值为DBNull.Value的话,至少说明 ...
- asp.net中C#对象与方法 属性详解
C#对象与方法 一.相关概念: 1.对象:现实世界中的实体 2. 类:具有相似属性和方法的对象的集合 3.面向对象程序设计的特点:封装 继承 多态 二.类的定义与语法 1.定义类: 修饰符 类名称 ...
- C# 读取Excel中的数据
#region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name=&quo ...
- MVP MVVM MVC
上一篇得到大家的关注,非常感谢.由于自己对于这些模式的理解也是有限,对于MVC,MVP,MVVM这些模式的比较,是结合自己的理解,一些地方不一定准确,需要的朋友可以参考下 上一篇得到大家的关注,非常感 ...
- 【DotNetNuke介绍】
简介 DotNetNuke(以下简称DNN)的最终目的是创建一个门户的框架平台,这个平台可以为开发者增添模块搭建应用程序提供坚实的可靠的支持.应用程序的一个关键的功能就是数据存取..NET Frame ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别
C#中的空值的判断较麻烦,不象在VB6中那么简单,这些各种空值的判断和理解对不熟悉的人来说,可能很麻烦,现就我在使用过程中的一点体会和大家共同分享. (1)NULL null 关键字是表示不引用任何对 ...
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
对表进行插入操作,如datetime和int类型的两个字段,都允许为null,用“sqlcmd.Parameters.Add("@t12",tb12.Text)”参数绑定时.dat ...
- C#中关于DBNULL的处理方法
从数据库中获取数据有些会是空值的,这时一不注意就会被坑了…… String.Concat(db.可能为DBNULL的值) 在这种情况下,如果是DBNULL,得到的会是""
随机推荐
- php知识点(基本上文档都有,只为方便记忆)
类型转换 (unset)转换为NULL (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增 转换二进制 隐藏php后缀名 AddType application/x-httpd ...
- 【sqli-labs】 less3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)
实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') ...
- Quartz+Topshelf 作业
小记: 引用Quartz.Topshelf.Topshelf.Quartz 使用方法: http://www.cnblogs.com/mushroom/p/4952461.html http://ww ...
- tee
功能说明:把数据重定向到给定文件和屏幕上. 参数选项: -a 向文件追加内容,而不是覆盖. tee命令允许标准输出同时把内容写入(覆盖)到文件中的实践. tee命令允许标准输出同时把内容 ...
- Object.assign和序列/反序列
Object.assign let testObj = { a:[1,2,4], b:{ name:'ls', school:['huf','yelu'], parent:{ father:'lili ...
- Robot Framework(六)变量
变量 2.5.1简介 变量是Robot Framework的一个不可或缺的特性,它们可以在测试数据的大多数地方使用.最常见的是,它们用于测试用例表和关键字表中关键字的参数,但所有设置都允许在其值中使用 ...
- python从TXT创建PDF文件——reportlab
使用reportlab创建PDF文件电子书一般都是txt格式的,某些电子阅读器不能读取txt的文档,如DPT-RP1.因此本文从使用python实现txt到pdf的转换,并且支持生成目录,目录能够生成 ...
- [jzoj 5782]【NOIP提高A组模拟2018.8.8】 城市猎人 (并查集按秩合并+复杂度分析)
传送门 Description 有n个城市,标号为1到n,修建道路花费m天,第i天时,若gcd(a,b)=m-i+1,则标号为a的城市和标号为b的城市会建好一条直接相连的道路,有多次询问,每次询问某两 ...
- 记一次惊心的网站 TCP 队列问题排查经历
https://blog.csdn.net/chenlycly/article/details/80868990 http://www.mytju.com/classcode/news_readnew ...
- 数据持久层(DAO)通用API的实现
在Web开发中,一般都分3层.Controller/Action 控制层,Service/Business 服务层/业务逻辑层,Dao 数据访问层/数据持久层. 在学习和工作的实践过程中,我发现很多功 ...