错的是哪一句?
如果是第一句的话,你先判断ds.Tables("pcbx_ext_mng").Rows(0)("EM001")是否为null
如果是第一句的话,你先判断ds.Tables("pcbx_ext_mng").Rows(0)("EM001")是否为null
解决方案 »
- webpart(自定义界面),可拖动
- 同一个页面有多个按钮和多个文本框,如何控制敲回车时提交哪一个按钮
- Web.config引发的一个问题,高分求解
- c#怎么让dropdownlist下拉菜单里重复项只显示一个不显示那么多
- 求助 js调用后台方法问题
- 最近上百度的时候老出现JS错误提示(行几缺少对象)
- 票据打印问题:套打(就像银行打印存折那样) 不用水晶报表
- 需要让用户编辑Excel表头,保存成xml,再把这个xml和数据库里面的数据导出到Excel,有什么建议?
- FindControl找不到控件。
- VS.NET不能新建项目的问题.大侠们帮我看看.
- asp.net 几个简单的基本问题
- web.config的文件内容中的中文都变成了乱码,那位高手知道原因,请指点!
If IsDBNull(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) Or Trim
(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) == "" Then
应该是两个等号~~~~~~~
TextBox3.Text = ""
Else : TextBox3.Text = Trim(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME"))
End If
在编译的时候,.net给我的提示:Cast from type 'DBNull'to type 'string 'is not valid .
具体错误行为:第一行和第二行,当我判断DEPNAME为空的时候,赋值TextBox3.txt=空
我想是不是在判断时,语句有问题???
If IsDBNull(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) Then
TextBox3.Text = ""
Else
TextBox3.Text = Trim(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME"))
End If
to 热的咖啡:您给的提示在VB里是错误语法,我用的VB
Dim tbl As New DataTable()
tbl.Columns.Add("col")
Dim row As DataRow = tbl.NewRow()
tbl.Rows.Add(row)
If IsDBNull(tbl.Rows(0)(0)) OrElse Trim(tbl.Rows(0)(0)) = "" Then
Response.Write("null")
End If
当把OrElse改成Or之后,就会出现你的错误。
System.Convert.IsDBNull(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) //
感觉你那样判断是多余的
TextBox3.Text = Trim(ds.Tables("pcbx_ext_mng").Rows(0).("DEPNAME"))在vb下会有问题么?C#下ds.Tables["pcbx_ext_mng"].Rows[i].ItemArray[1].ToString()可是好得很的
我理解你的意思是
If bool Or bool Then ...
感觉Trim(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) = ""像是赋值语句。
可能我理解错了?
str = "SELECT *,(SELECT TOP 1 CA002 FROM USER_BASEDATA f WHERE EM001=f.CA015) AS UNAME,(SELECT TOP 1 c.DB002 FROM USER_BASEDATA b, DEPT_BASEDATA c WHERE EM002=b.CA007 AND b.CA004=c.DB001 ) AS DEPNAME FROM PCBX_EXT_MNG where EM001='" + Request.QueryString("aa") + "' ORDER BY EM002 "
其中,UNAME和DEPNAME实际上并不在pcbx_ext_mng这张表中, 而是由其它表关联后产生的字段,我猜想是不是因为这个原因,才导致System.Convert.IsDBNull报错呢???
Trim(ds.Tables("pcbx_ext_mng").Rows(0)("DEPNAME")) == ""才是比较两者是否相等的。
难道C#和VB相差这么大?还是我孤陋寡闻,学识太浅了。
那个问题你最好是单步调试,我测试了一下你的sql语句,应该是不会出问题的,即使没有数据,也会返回一个null值,那个判断如果按照我的方法应该是不会出错的。如果还是有问题的话单步调试是最好的了
If IsDBNull(ds.Tables("pcbx_ext_mng").Rows(0).Item("DEPNAME")) Then
TextBox3.Text = "無部門"
End If
TextBox3.Text = "無部門"
End If
power0816,可否告诉我是什么原因呢?还有其他人如果知道,麻烦告诉我!!!!