System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法或
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法或相关的知识,希望对你有一定的参考价值。
string sql = "select [Name],[Address],[WebAddress],[Telephone],[Description],[LeftTopPic],[LeftBottomPic] from [t_Customer] where [CustomerID] = " + ctid;
SqlDataReader reader = sqlhelper.GetReader(sql, CommandType.Text, sqlhelper.conn);
string[] readstring = new string[7];
while (reader.Read())
for (int i = 0; i < 7; i++)
readstring[i] = reader.GetString(i);
reader.Close();
return readstring;
这是怎么回事?
而要避免发生这个错误,只要在赋值语句外面嵌套一个if判断来保证取出的数据不是NULL空值。
类似楼上这样:
for (int i = 0; i < 7; i++)
if(!reader.IsDBNull(i))
readstring[i] = reader.GetString(i);
参考技术B IsDBNull
就像楼上兄弟说的,有可能读出的数据为NULL,可以这样改:
方法一:
while (reader.Read())
for (int i = 0; i < 7; i++)
if (reader.IsDBNull(i))
continue;
readstring[i] = reader.GetString(i);
方法二:
string sql = "select ISNULL([Name],''),ISNULL([Address],''),ISNULL([WebAddress],''),ISNULL([Telephone],''),ISNULL([Description],''),ISNULL([LeftTopPic],''),ISNULL([LeftBottomPic],'') from [t_Customer] where [CustomerID] = " + ctid;
方法三:
while (reader.Read())
for (int i = 0; i < 7; i++)
readstring[i] = reader[i].ToString();
本回答被提问者采纳
亚马逊AWS免费套餐EC2安装centos连接登录并创建root
前言:刚开始使用亚马逊的AWS的免费套餐EC2,由于个人习惯使用centos系统,所以果断安装,但是AWS为了安全性,默认禁止用户使用root账户,导致安装配置环境各种问题。所以我把从安好系统后遇到的一些基本问题整理出来,方便大家更快的入手!
涉及到的问题:
1. 如何在aws上安装centos系统
2. 如何删除创建好的vps服务器
3. 安装的centos系统后,如何在windows上远程登录ec2
4. 在ec2上创建root账户,并且使用root账户登录
第1块:aws上怎么安装centos之类的系统
太复杂的就不说了,简明扼要一张图
第2块:vps服务器创建好后如何删除
也是挺简单的,服务器上”右键“,点”终止“,看图说话吧。有的朋友估计会说删了半天还在,我只能说多等会吧,在等的过程中你可以重新创建,一个月750小时的配额,按31天算才744小时,偶尔搞下没问题,不扣费!
第3块:创建好系统后如何登录服务器
当时我的心情可以用一个词形容”蛋疼“,很疼,本来就是半把刷子,普通的root登录还行,一下搞个publickey,完全蒙掉了。
方法其实很简单,官方在你创建完成后会给中文教程,用putty工具远程连接,但是看起来很麻烦。我用的xshell登录。
这里要说下,不同系统的登录账户是不一样的,大部分是ec2-user,centos的登录账户名字就是centos。看图说话
ec2上创建root账户,切换登陆之
接上边,登录进系统后,开始开始操作
1、创建root的密码,输入如下命令:
sudo passwd root
- 1
2、切换到root账号,命令如下:
su root
- 1
3、编辑亚马逊aws-ec2主机的ssh登录方式,查找PasswordAuthentication no,把no改为yes,命令如下:(如果你要说不会用vi编辑,我也没办法了!)
vi /etc/ssh/sshd_config
- 1
4、重启sshd服务,看命令
sudo /sbin/service sshd restart
- 1
5、切换root账号
su root
- 1
6、给账户centos添加密码(其它系统的是ec2-user)
passwd centos
- 1
7、至此结束,可以用root和最开始设置的root密码登录服务器了,登录地址还是公有DNS
完了
暂时就到这里了,有什么问题大家可以留言,我知道的会解答的。
最后一句:虽然本文的知识是我各种查询和揣摩测试出来的,不敢说太大功劳,本着分享的精神希望能帮到更多的人,所以觉得好的欢迎转载,但请尊重我的劳动成果,转载时著名出处,谢谢!
Ater至上!
以上是关于System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法或的主要内容,如果未能解决你的问题,请参考以下文章