博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(10)C#之ADO.NET 数据库中的NULL值的插入与读取
阅读量:4614 次
发布时间:2019-06-09

本文共 2447 字,大约阅读时间需要 8 分钟。

在建立数据库的时候,我们可以把字段类型设置为可空或者非可空。如果遇到某些字段可空的时候我们应该如何插入NULL值得数据,以及如何读取NULL值得数据呢?这里用一个小案例来分析这个问题。

 

①首先当然是建立一个数据库表,其中有两个可空字段,一个非空字段。具体如下图:

  

 

②新建一个窗口,在这个窗口上放上三个TextBox,分别用来给用户输入要导入的Name,Age,Height。然后再放入两个Button控件,一个用来向数据库插入这些输入,一个用来导出数据库中的数据。如下图

③先来讲解insert按钮,在这个按钮的Click事件中写入这些代码:

private void button1_Click(object sender, RoutedEventArgs e)        {            string name = textBox1.Text;            string age = textBox2.Text;            int height = Convert.ToInt32(textBox3.Text);            Object objName;            if (name.Length <= 0)            {                objName = DBNull.Value;            }            else             {                objName = name;            }            Object objAge;            if (age.Length <= 0)            {                objAge = DBNull.Value;            }            else            {                objAge = age;            }            SqlHelper.ExecuteNonQuery("Insert into T_Person values (@name,@age,@height)",                new SqlParameter("@name",objName),                new SqlParameter("@age",objAge),                new SqlParameter("@height",height));            MessageBox.Show("插入成功");        }

◇DBNull.Value是用来表示数据中的Null值的。

◇因为DBNull.Value不是string类型的,所以为了方便,我们分别创建了一个Object类型的objName以及objAge来接受这个DBNull.Value的值。

◇这样无论用户是否有在TextBox中输入name或者age,都可以顺利的将输入的数据插入数据库。

 

④插入数据完了之后自然就是读取数据,在select按钮的Click事件中写下如下代码:

private void button2_Click(object sender, RoutedEventArgs e)        {                       DataTable dt = SqlHelper.ExecuteDataTable("select * from T_Person");            foreach (DataRow dr in dt.Rows)            {                string name;                int? age;                if (dr["Name"] == DBNull.Value)                {                  name = null;                }                else                {                  name = (string)dr["Name"];                }                if (dr["Age"] == DBNull.Value)                {                    age = null;                }                else                {                    age = (int)dr["Age"];                }                int height = (int)dr["Height"];                MessageBox.Show("姓名:"+name+"  年龄:"+age+"  身高:"+height);            }                    }

◇这些代码比较简单,只有一点,有些类型是可空的,例如string类型。可是又有些类型是不可空的,例如int,bool等类型。

◇可空的类型可以接收null值,不可空的类型不能接收null值。

◇如果想让不可空的类型接收null值,那么就在声明变量的时候,在类型的后面加上一个“?”,例如,想要申请一个可空的int类型,如上代码可以这样写道:"int? age;"

 

转载于:https://www.cnblogs.com/kaolalovemiaomiao/p/4708548.html

你可能感兴趣的文章
android Javah生成JNI头文件
查看>>
npm创建react项目
查看>>
关于u32中查找和定位最后到bit Number of 1 Bits
查看>>
sql数据库查询
查看>>
云计算技能图谱
查看>>
类的方法
查看>>
数据结构(栈&堆 )
查看>>
Oracle 高级分组
查看>>
IDEA-常用快捷键
查看>>
有道显示网络已断开
查看>>
Python9-进程池-day38
查看>>
进程的状态(转)
查看>>
spring mvc为何多注入了个SimpleUrlHandlerMapping?
查看>>
node express框架基本配置
查看>>
深入理解MySQL的ACID四大特性原理
查看>>
Codeforces Round #463 F. Escape Through Leaf (李超线段树合并)
查看>>
@ResponseBody 注解是什么意思?
查看>>
Code4App地址
查看>>
蓄水池抽样
查看>>
C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
查看>>