DataTable出错问题

iStringTheory 2002-04-22 09:28:37
我的一个程序出现如下错误:
System.InvalidCastException: Operator is not valid for type 'DataTable' and 'Nothing'.

出错语句是:
if session("session_Book") = Nothing then

请问是什么问题?谢谢!

附完整代码:
<%@ Import Namespace="System.Data" %>
<html>
<script language="VB" runat="server">
dim Book As DataTable
dim BookView As DataView '设置数据源,并绑定
Sub BindList()
DataList1.DataSource= BookView
DataList1.DataBind
End Sub

Sub Page_Load(s As Object, e As EventArgs)
Dim dr As DataRow
'如果没有连接变量session_book,定义数据表Book,并载入实验数据
if session("session_Book") = Nothing then
Book = New DataTable()
Book.Columns.Add(new DataColumn("num", GetType(string)))
Book.Columns.Add(new DataColumn("name", GetType(String)))
Book.Columns.Add(new DataColumn("price", GetType(String)))
session("session_Book") = Book
'载入部分测试数据
dim i as integer
For i = 1 To 6
dr = Book.NewRow()
dr(0)=i.ToString
dr(1) = "书名" & i.ToString
dr(2) = ( 1.11* i).ToString
Book.Rows.Add(dr)
Next '有session_book变量,直接引用
Else
Book = session("session_Book")
end if '产生数据视图,并按num字段排序
BookView = New DataView(Book)
BookView.Sort="num" '初次需绑定数据源
if Not IsPostBack then
BindList
End If
End Sub

'编辑处理函数
Sub DataList_EditCommand(sender As Object, e As DataListCommandEventArgs)
DataList1.EditItemIndex = e.Item.ItemIndex
BindList
End Sub

'取消处理函数
Sub DataList_CancelCommand(sender As Object, e As DataListCommandEventArgs)
DataList1.EditItemIndex = -1
BindList
End Sub

'更新处理函数
Sub DataList_UpdateCommand(sender As Object, e As DataListCommandEventArgs)
Dim lbl1 As Label = e.Item.FindControl("lblNum")
Dim txt2 As TextBox = e.Item.FindControl("txtBook")
Dim txt3 As TextBox = e.Item.FindControl("txtPrice")
dim strNum as String
dim strBook as String
dim strPrice as String
strNum=lbl1.text
strBook=txt2.text
strPrice=txt3.text

'用先删除再插入的方式,实现数据的更新操作
BookView.RowFilter = "num='" & strNum & "'"
If BookView.Count > 0 Then
BookView.Delete(0)
End If
BookView.RowFilter = ""
dim dr as DataRow=Book.NewRow()

dr(0) = strNum
dr(1) = strBook
dr(2) = strPrice
Book.Rows.Add(dr)
DataList1.EditItemIndex = -1
BindList
End Sub
</script>
<head>
<title>数据列表修改实验 </title>
</head>
<body>
<center>
<h2>数据列表修改实验</h2>
<hr>
<p></p>
<form runat="server" ID="Form1">
<font face="Verdana" size="-1">
<!--编辑时显示绿色,并定义编辑、修改、取消时的处理函数-->
<asp:DataList id="DataList1" runat="server" BorderColor="black" BorderWidth="1" GridLines="Both" CellPadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="8pt" Width="150px" HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="Gainsboro" EditItemStyle-BackColor="green" OnEditCommand="DataList_EditCommand" OnUpdateCommand="DataList_UpdateCommand" OnCancelCommand="DataList_CancelCommand">
<HeaderTemplate name="HeaderTemplate">
<center><h>书籍序号</h></center>
</HeaderTemplate>
<ItemTemplate name="ItemTemplate">
<asp:LinkButton id="button1" runat="server" Text="详细" CommandName="edit" />
<%# Container.DataItem("name") %>
</ItemTemplate>
<EditItemTemplate name="EditItemTemplate">
书籍: 序号
<asp:Label id="lblNum" runat="server" Text='<%# Container.DataItem("num") %>' /><br>
书名:
<asp:TextBox id="txtBook" runat="server" Text='<%# Container.DataItem("name") %>' /><br>
价格:
<asp:TextBox id="txtPrice" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "price") %>' />
<br>
<center>
<asp:Button id="button2" runat="server" Text="修改" CommandName="update" />
<asp:Button id="button3" runat="server" Text="撤消" CommandName="cancel" />
</center>
</EditItemTemplate>
</asp:DataList>
</asp:DataList> </font>
</form>
</center>
</body>
</html>
...全文
110 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
iStringTheory 2002-10-16
  • 打赏
  • 举报
回复
有人么?

62,039

社区成员

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

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

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

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