怎么从数据库中读取null值?

hz3171065330 2015-12-01 10:53:22

if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[5].Text = e.Row.Cells[5].Text == "" ? "---" : e.Row.Cells[5].Text;
e.Row.Cells[5].Text = e.Row.Cells[5].Text == " " ? "---" : e.Row.Cells[5].Text;
e.Row.Cells[5].Text = e.Row.Cells[5].Text == null ? "---" : e.Row.Cells[5].Text;
e.Row.Cells[5].Text = e.Row.Cells[5].Text.ToString() == null ? "---" : e.Row.Cells[5].Text;
e.Row.Cells[5].Text = e.Row.Cells[5].Text.ToString() == System.DBNull.Value.ToString() ? "---" : e.Row.Cells[5].Text;
e.Row.Cells[3].Text = e.Row.Cells[3].Text == "0.00" ? "---" : e.Row.Cells[3].Text;
e.Row.Cells[4].Text = e.Row.Cells[4].Text == "0.00" ? "---" : e.Row.Cells[4].Text;
e.Row.Cells[5].Text = e.Row.Cells[5].Text == "0.00" ? "---" : e.Row.Cells[5].Text;
}

从数据库中读取null值,如果是null则变成---,试了好几个办法,都没有办法吧e.Row.Cells[5]中的null读出来,数据库中确实是null值
...全文
319 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hz3171065330 2015-12-02
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
e.Row.Cells[5].Text 这个已经不是数据库的东西了,这是GridView的东西,这个你应该判断是不是为空string.IsNullOrEmpty

            if (string.IsNullOrEmpty(e.Row.Cells[5].Text))
            {
                e.Row.Cells[5].Text = "---";
            }
一样有问题
qq_28133307 2015-12-02
  • 打赏
  • 举报
回复
e.Row.Cells[5].Text.ToString() == “” ? "---" : e.Row.Cells[5].Text.ToString(); 这样写会错?调试看看错在哪里嘛。。。
  • 打赏
  • 举报
回复
e.Row.Cells[5].Text 这个已经不是数据库的东西了,这是GridView的东西,这个你应该判断是不是为空string.IsNullOrEmpty
hz3171065330 2015-12-02
  • 打赏
  • 举报
回复
引用 7 楼 starfd 的回复:
如楼上所说,数据库的Null值在Ado.NET读取出来时,是用DbNull作为载体的,所以你上面判断null的地方,改为判断DbNull.Value就可以了
e.Row.Cells[5].Text = e.Row.Cells[5].Text.ToString() == System.DBNull.Value.ToString() ? "---" : e.Row.Cells[5].Text; 已经这样写了,但是还是无法读取。
正怒月神 版主 2015-12-02
  • 打赏
  • 举报
回复
数据库读出来是 dbnull 你用 Row.Cells[5].Text is dbnull 这样就能判断了
  • 打赏
  • 举报
回复
如楼上所说,数据库的Null值在Ado.NET读取出来时,是用DbNull作为载体的,所以你上面判断null的地方,改为判断DbNull.Value就可以了
qq_28133307 2015-12-02
  • 打赏
  • 举报
回复
e.Row.Cells[5].ToString(); 判断如果结果等于“”,则替换为“---”
insus 2015-12-02
  • 打赏
  • 举报
回复
在数据库实现吧。 如: SELECT CASE WHEN [colName] IS NULL THEN '---' ELSE [colName] END AS [colName]
huaneramn 2015-12-02
  • 打赏
  • 举报
回复
这么多都不行啊。。。。。。。。。。。。。。。
EdsionWang 2015-12-02
  • 打赏
  • 举报
回复
看上去你已经把数据绑定到控件上了。

e.Row.Cells[5].Text.ToString() == "" ? "---" : e.Row.Cells[5].Text;
但这样会把数据库中空字符也替换掉(不仅仅是null)值了。或者在select 查询语句时就判断并替换
myhope88 2015-12-02
  • 打赏
  • 举报
回复
dbnull,或strng.isempty应该也可以吧
hz3171065330 2015-12-02
  • 打赏
  • 举报
回复
感谢各位,后来发现gridview读出来的null在显示以后是空格   e.Row.Cells[5].Text.ToString() == “ ” ? "---" : e.Row.Cells[5].Text.ToString(); 就好了
qq_26820711 2015-12-01
  • 打赏
  • 举报
回复
数据库中的null值在vs中判断用DBNull.Value

string name;
 if (row["Name"] == DBNull.Value)
            {
                name = null;
            }
            else
            {
                name = (string)row["Name"];
            }

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧