请大家帮个忙,今天总是遇到这个问题:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

lyjlyj1998 2007-05-15 09:42:03
以前没有好好学习,现在做毕业设计时总是遇到问题啊,请各位前辈帮帮忙忙,
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 132: daobj.prowscountperpage = rowscountperpage
行 133: '指定数据源
行 134: DLSearched.DataSource =daobj.displaypartdata
行 135: '绑定数据源
行 136: DLSearched.DataBind()


源文件: D:\明日科技\corpwebapp\search.aspx.vb 行: 134

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
corpwebapp.search.bindcurrentpage(Int32 currentpageno, Int32 rowscountperpage) in D:\明日科技\corpwebapp\search.aspx.vb:134
corpwebapp.search.displaypart() in D:\明日科技\corpwebapp\search.aspx.vb:82
corpwebapp.search.Page_Load(Object sender, EventArgs e) in D:\明日科技\corpwebapp\search.aspx.vb:52
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()


...全文
579 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingReturns 2007-05-15
  • 打赏
  • 举报
回复
调试,跟踪看一下那里有问题
lyjlyj1998 2007-05-15
  • 打赏
  • 举报
回复
全部代码如下,请各位前辈看看是怎么回事?
Imports System.Data
Imports System.Data.SqlClient
Public Class search
Inherits System.Web.UI.Page

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents DLSearch As System.Web.UI.WebControls.DataList
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents lbFirst As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbPrev As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbLast As System.Web.UI.WebControls.LinkButton
Protected WithEvents lPagecount As System.Web.UI.WebControls.Label
Protected WithEvents lRowscount As System.Web.UI.WebControls.Label
Protected WithEvents lCurrentpage As System.Web.UI.WebControls.Label

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region
Dim daobj As New dataaccessobj
'定义主题记录的总数
Dim rowscount As Integer
'定义一共显示的页数
Dim pagecount As Integer
'定义当前的页号
Dim currentpage As Integer
'定义每一页显示多少行
Const rowsperpage As Integer = 1
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If IsPostBack = False Then
'绑定数据
mybinddata()
calrowscount()
End If
'不分页显示
'displayall()
'分页显示
displaypart()
End Sub

Sub mybinddata()
'绑定搜索结果
daobj.pconstr = "server=localhost;uid=sa;pwd=password;database=corp"
If Request.QueryString("sby") = "" Then
Label1.Text += "请填写搜索的依据"
Else
If Request.QueryString("sby") = "按产品名称搜索" Then
daobj.psqlstr = "select * from viewcorpprs where pname like '%" & Request.QueryString("skey") & "%'"
End If
If Request.QueryString("sby") = "按厂商搜索" Then
daobj.psqlstr = "select * from viewcorpprs where sname like '%" & Request.QueryString("skey") & "%'"
End If
End If
End Sub

Sub displayall()
'不分页显示
'指定数据源
DLSearched.DataSource = daobj.displaydata()
'绑定数据源
DLSearched.DataBind()
End Sub

Sub displaypart()
'分页显示
'绑定当前页的记录
If currentpage <> 0 Then
bindcurrentpage(currentpage, rowsperpage)
If currentpage = 1 Then
lbFirst.Enabled = False
lbPrev.Enabled = False
Else
lbFirst.Enabled = True
lbPrev.Enabled = True
End If
If currentpage = pagecount Then
lbNext.Enabled = False
lbLast.Enabled = False
Else
lbNext.Enabled = True
lbLast.Enabled = True
End If
Else
lbFirst.Enabled = False
lbPrev.Enabled = False
lbNext.Enabled = False
lbLast.Enabled = False
End If
End Sub

Sub calrowscount()
'首先计算记录总的行数
rowscount = daobj.displaydata().Count
'然后计算要显示的总的页数
If rowscount = 0 Then
currentpage = 0
Label1.Text = "无记录"
Else
currentpage = 1
Label1.Text = "有记录"
If rowscount Mod rowsperpage > 0 Then
pagecount = rowscount \ rowsperpage + 1
Else
pagecount = rowscount \ rowsperpage
End If
End If
'显示出总的页数
lPagecount.Enabled = True
lCurrentpage.Enabled = True

lPagecount.Text = "共" & pagecount.ToString() & "页"
lRowscount.Text = "共" & rowscount.ToString() & "条记录"
lCurrentpage.Text = "第" & currentpage.ToString() & "页"
End Sub

Sub bindcurrentpage(ByVal currentpageno As Integer, ByVal rowscountperpage As Integer)
daobj.pcurrentpageno = currentpageno
daobj.prowscountperpage = rowscountperpage
'指定数据源
DLSearched.DataSource = daobj.displaypartdata
'绑定数据源
DLSearched.DataBind()
End Sub

Sub goto_click(ByVal sender As Object, ByVal e As CommandEventArgs)
Dim pagecountnum, currentpageno As Integer
pagecountnum = Convert.ToInt32(getno("pagecount"))
currentpageno = Convert.ToInt32(getno("currentpage"))

Dim commandtxt As String
commandtxt = e.CommandName
Select Case commandtxt
Case "First"
currentpage = 1
Case "Next"
currentpage = Math.Min(pagecountnum, currentpageno + 1)
Case "Prev"
currentpage = Math.Max(1, currentpageno - 1)
Case "Last"
currentpage = pagecountnum
End Select
If currentpage = 1 Then
lbFirst.Enabled = False
lbPrev.Enabled = False
Else
lbFirst.Enabled = True
lbPrev.Enabled = True
End If
If currentpage = pagecountnum Then
lbNext.Enabled = False
lbLast.Enabled = False
Else
lbNext.Enabled = True
lbLast.Enabled = True
End If
'读取新页中的记录
mybinddata()
bindcurrentpage(currentpage, rowsperpage)
'记录并显示新页号
lCurrentpage.Text = "第" & currentpage.ToString() & "页"
End Sub

Function getno(ByVal labelname As String) As String
Dim str As String
Dim no As Integer
If labelname = "pagecount" Then
str = lPagecount.Text
str = str.Trim("共", "页")
End If
If labelname = "currentpage" Then
str = lCurrentpage.Text
str = str.Trim("第", "页")
End If
If labelname = "rowscount" Then
str = lRowscount.Text
str = str.Trim("共", "条", "记", "录")
End If
Return str
End Function

End Class
NealShi 2007-05-15
  • 打赏
  • 举报
回复
使用了不存在或者没有实例化的东东

62,266

社区成员

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

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

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

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