我的代码:
rptSeal.DataSource = dtrSeal
rptSeal.DataBind() // 我是用repeater绑定数据的。取值过程用 Container.DataItem("字段名")现在的问题是:我取出的值是一个代号,我要把代号转换成字符变量,于是我用函数完成,结果如下:Public Function Tran_Type(strType As String) As String Select Case strType
case "1"
Return "这个"
case "2"
Return "那个"
case "3"
Return ....
End Select
End Function////////////////////////////////////////////////////////////
但数据库中取出的数据可能为空,为空时就会出错,想问各位如何判断是否为空,及如何应用到程序中。我这样使用可是不行,如下:
If Convert.IsDBNull(strType) Then //在函数中
.......or<%# Convert.IsDBNull(Container.DataItem("字段名")) ? "99" : Container.DataItem ) %>
// 也不行,这个可能是在VB。NET中没有 ?:这个运算符
请问各位,要完成这个问题该如何做呢,谢谢!
rptSeal.DataSource = dtrSeal
rptSeal.DataBind() // 我是用repeater绑定数据的。取值过程用 Container.DataItem("字段名")现在的问题是:我取出的值是一个代号,我要把代号转换成字符变量,于是我用函数完成,结果如下:Public Function Tran_Type(strType As String) As String Select Case strType
case "1"
Return "这个"
case "2"
Return "那个"
case "3"
Return ....
End Select
End Function////////////////////////////////////////////////////////////
但数据库中取出的数据可能为空,为空时就会出错,想问各位如何判断是否为空,及如何应用到程序中。我这样使用可是不行,如下:
If Convert.IsDBNull(strType) Then //在函数中
.......or<%# Convert.IsDBNull(Container.DataItem("字段名")) ? "99" : Container.DataItem ) %>
// 也不行,这个可能是在VB。NET中没有 ?:这个运算符
请问各位,要完成这个问题该如何做呢,谢谢!
解决方案 »
- asp.net gridview dropdownlist selectedvalue问题,望老手来看看
- MVC运行报错
- asp.net2005 treeview点击文字展开如何实现
- B/S执行长的存储过程与SESSION长时间保存解决方案
- 安装aspnetforums遇到的问题
- 求教大侠们。网页如何得到ActivX属性和变量,同样,ActiveX如何得网页参数??
- ASP和ASP.NET有多少区别和联系啊?可不可以直接学ASP.NET啊?是不是ASP.NET会了,ASP也就会了?
- 打了sp3还需要吃什么补药?
- 请教高手datagrid的取值问题
- asp.net工程移植到其他服务器上,重新打开出现这样的错误如何解决阿 :(((
- [求助] 类型"system.data.oledb.oledbconnection"的值无法转换为"system.data.oledb.oledbconnection的1维数组"
- 谁帮把下面的asp代码改成asp.net+C#
case "1"
Return "这个"
case "2"
Return "那个"
case "3"
Return ....
default
Return ....
End Select
End Function
default
Return ....
select iif(xx=null,-1) from table
否则,当有NULL值的时候,以datareader取值绑定的时候,就会出错,跟你的函数没有关系
如果是用dataset,那么,可把你的函数改如下:
Public Function Tran_Type(strType As String) As String Select Case strType
case "1"
Return "这个"
case "2"
Return "那个"
case "3"
Return ....
case else
Return...
End Select
End Function
if isDbNull(row("字段名")) then
return ""
end if Select Case row("字段名")
case "1"
Return "这个"
case "2"
Return "那个"
case "3"
Return ....
End Select
End Function调用
<%# Tran_Type(Container.DataItem) %>
http://downmoon.mblogger.cn/posts/16620.aspx
Server Error in '/' Application.
--------------------------------------------------------------------------------Specified cast is not valid.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.InvalidCastException: Specified cast is not valid.Source Error:
。我的程序的数据程序是这样写的:Dim conSeal As SqlConnection
Dim cmdSeal As SqlCommand
Dim dtrSeal As SqlDataReader
Dim strSQL As String ="SELECT * FROM 表"conSeal = New SqlConnection( 连接字符串 )
cmdSeal = New SqlCommand(strSQL,conSeal)
conSeal.Open()
dtrSeal = cmdSeal.ExectueReader()rptSeal.DataSource = dtrSeal
rptSeal.DataBind()
...........我写的函数基本和上一样:
Public Function Tran_Materia(ByVal row As System.Data.DataRowView) As String
If IsDBNull(row("字段名")) Then
Retrun "无信息"
Else
Select Case row("字段名")
Case "01"
Return "一"
Case "02"
Return "二"
Case "03"
Return ............
End Select
End If
End Function
///////////////////////调用: <%# Tran_Materian(Container.DataItem) %>
麻烦各位了,谢谢!
return "狗屎东西什么都没有"
哈哈,对撒!
你的问在于不是没有Row,可能是没有记录!
你可以在取出 dtrSeal 后判断一下:
if(dtrSeal.Count==0)
{return ;}sql里也可以处理一下
isnull(id,0) as id,isnull(name,'default') as name ^^^^^^^^
------------
把你的数据集改为dataset或datatable,就不会出错了.
请再看一下我上面的描述.
row["Title"]=reader.IsDBNull(1)?"":reader.GetString(1);应该可以的吧!我一直这样用的
Dim localRow As DataRow = row.Row() If IsDBNull(localRow ("字段名")) Then
Retrun "无信息"
Else
Select Case localRow ("字段名")
Case "01"
Return "一"
Case "02"
Return "二"
Case "03"
Return ............
End Select
End If
End Function