初学ASP.NET,调试一个登陆模块时候出错,谢谢!

jekinpq 2006-11-14 03:51:41
“/WebApplication3.2”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未能找到存储过程 'pr_queryuser'。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 未能找到存储过程 'pr_queryuser'。

源错误:


行 75: '查询数据库中是否有相应的记录
行 76: Dim userid As Integer
行 77: userid = mycom.ExecuteScalar()
行 78: '返回结果集的记录流,判断结果集中是否有记录recn.hasrows
行 79: Dim recn As SqlDataReader


源文件: D:\我的文档\ASP.NET_test\Visual Studio Projects\WebApplication3.2\login.aspx.vb 行: 77

堆栈跟踪:


[SqlException: 未能找到存储过程 'pr_queryuser'。]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteScalar()
WebApplication3._2.login.BLogin_click_Click(Object sender, EventArgs e) in D:\我的文档\ASP.NET_test\Visual Studio Projects\WebApplication3.2\login.aspx.vb:77
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
...全文
202 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanlng 2006-11-19
  • 打赏
  • 举报
回复
你照书做的时候,书上没有给你这个存储过程吗?自己照书建立就可以了。
雷雨后的彩虹 2006-11-19
  • 打赏
  • 举报
回复
毫无疑问,没有存储过程!
jekinpq 2006-11-19
  • 打赏
  • 举报
回复
书上什么都没说
懒虫 2006-11-14
  • 打赏
  • 举报
回复
^_^,楼上的也许可以
懒虫 2006-11-14
  • 打赏
  • 举报
回复
呵呵,告诉我书名我给你找
yyuehong 2006-11-14
  • 打赏
  • 举报
回复
在你建立的数据库中新建一个存储过程,名称为pr_queryuser,代码如下:
CREATE PROCEDURE dbo.pr_queryuser
@username varchar(4),
@userpassword varchar(50)
AS
select * from userinfo where uname=@username and upassword=@userpassword;
GO
懒虫 2006-11-14
  • 打赏
  • 举报
回复
你从什么书搞来的?可以把光盘上的数据库附加或还原到你的数据库服务器上就都有了,自己建肯定缺东东,书上有这个存储过程吗?
erqie 2006-11-14
  • 打赏
  • 举报
回复
你找找你书上的那个叫pr_queryuser的存储过程吧。在数据库里把这个存储过程添加进去。具体的你的书上应该会讲怎么操作的。
jawd2002 2006-11-14
  • 打赏
  • 举报
回复
那就难怪,你应该还有个叫pr_queryuser的存储过程
jekinpq 2006-11-14
  • 打赏
  • 举报
回复
我的数据库只是添加了个users的库...一个userinfo的表单,,

还有 uid username userpassword 其它什么也没做
jawd2002 2006-11-14
  • 打赏
  • 举报
回复
你数据库有没有pr_queryuser的存储过程?
jekinpq 2006-11-14
  • 打赏
  • 举报
回复
代码如上
jekinpq 2006-11-14
  • 打赏
  • 举报
回复
'要使用SQL SERVER 2000数据库中的表,必须导入以下两个名字空间
Imports System.Data
Imports System.Data.SqlClient
'要使用Cookie就要用到以下名字空间 Security(安全)
Imports System.Web.Security


Public Class login
Inherits System.Web.UI.Page
'声明一个cookie,记录数据库中是否保存有输入用户的信息
Dim acookie As New HttpCookie("register")
Dim i As Integer
Protected WithEvents LabelMessage As System.Web.UI.WebControls.Label
Dim lognumcookie As HttpCookie



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

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

End Sub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents Label3 As System.Web.UI.WebControls.Label
Protected WithEvents tbusername As System.Web.UI.WebControls.TextBox
Protected WithEvents tbpassword As System.Web.UI.WebControls.TextBox
Protected WithEvents BLogin As System.Web.UI.WebControls.Button
Protected WithEvents breset As System.Web.UI.WebControls.Button
Protected WithEvents RFVusername As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents RFVpassword As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents REVuser As System.Web.UI.WebControls.RegularExpressionValidator

'注意: 以下占位符声明是 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

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
acookie.Value = "false"
Response.Cookies.Add(acookie)

End Sub

Private Sub BLogin_click_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BLogin.Click
'创建一个数据库对象
Dim mycon As New SqlConnection
mycon = New SqlConnection("server=localhost;uid=sa;pwd=jekin;database=users")

'创建一个SQLcommand对象 query(疑问)
Dim mycom As New SqlCommand
mycom = New SqlCommand("pr_queryuser", mycon)

'指明其命令类型为存储过程
mycom.CommandType = CommandType.StoredProcedure

'为上面的SqlCommand对象添加比较的参数(Parameter)
mycom.Parameters.Add(New SqlParameter("@username", SqlDbType.NVarChar, 4))
mycom.Parameters("@username").Value = tbusername.Text
mycom.Parameters.Add(New SqlParameter("@userpassword", SqlDbType.NVarChar, 50))
mycom.Parameters("@userpassword").Value = tbpassword.Text

'打开活动连接
mycon.Open()

'查询数据库中是否有相应的记录
Dim userid As Integer
userid = mycom.ExecuteScalar()
'返回结果集的记录流,判断结果集中是否有记录recn.hasrows
Dim recn As SqlDataReader
recn = mycom.ExecuteReader


'如果数据库中有记录,则登录成功,否则登录失败
If userid <> 0 Then

'若数据库中存在用户信息,就记录该用户成功登录的标记到cookies中
acookie.Value = "ture"
Response.Cookies.Add(acookie)

'登录成功则返回先前的页面
FormsAuthentication.RedirectFromLoginPage(tbusername.Text, False)

'找前页面地址
Dim strRedirect As String
If Not Request.Cookies("pageurl") Is Nothing Then
strRedirect = Request.Cookies("pageurl").Value
Else
strRedirect = Page.Request.Url.AbsolutePath
labelMessage.text = "NOW"

End If

'登录成功则返回先前的页面
Response.Redirect(strRedirect)

Else
'允许尝试登录三次,超过三次则无权访问受访问限制的页面
If Request.Cookies("lognumber") Is Nothing Then
lognumcookie = New HttpCookie("lognumber")

Else
lognumcookie = Request.Cookies("lognumber")

End If
i = CInt(lognumcookie.Value) + 1
lognumcookie.Value = i.ToString
'lognumcookie.expires= datetime.now.addDays(1)
Response.Cookies.Add(lognumcookie)
If i < 3 Then
'添加通知出错消息
LabelMessage.Text = "用户名或密码有错!请重填"
Else
Response.Redirect("sorry.aspx")

End If

End If
'关闭连接
mycon.Close()


End Sub

Private Sub breset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles breset.Click
'重置按钮
tbusername.Text = ""
tbpassword.Text = ""


End Sub

Private Sub BLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BLogin.Click

'自动产生表单验证cookie且将页面定向default.aspx
FormsAuthentication.RedirectFromLoginPage(tbusername.Text, False)


End Sub
End Class
jawd2002 2006-11-14
  • 打赏
  • 举报
回复
找个简单的学,要代码我可发给你
vzxq 2006-11-14
  • 打赏
  • 举报
回复
错误报的很明显了,执行错误过程的时候没有找到这个存储过程
jekinpq 2006-11-14
  • 打赏
  • 举报
回复
我是照着书做的
Haoye 2006-11-14
  • 打赏
  • 举报
回复
你是原版照抄别人的代码吧.此代码要求你的数据库要有名为'pr_queryuser'的存储过程
jekinpq 2006-11-14
  • 打赏
  • 举报
回复
我都不知道这个是什么东东 'pr_queryuser'
jawd2002 2006-11-14
  • 打赏
  • 举报
回复
你确定有 'pr_queryuser' 这个存储过程?
郑州大学包装在线 网站源代码使用说明 ZZU PACKAGING 2000 Website 2002-10-30 系统说明: 这是我第一个 ASP.net 作品,写于上个学期四五月份(40天左 右,还要上课) 我是郑州大学包装工程系的学生,本系统本来是为我们专业同学 做的一个网上展示平台,包括了专业新闻,专业网上知识库,论坛, 留言簿,作品展示(由于专业是包装嘛),个人资料展示等等。当 然还有完整的后台管理模块。 当时写作时,几乎没有什么可以参考的源代码示例,只有微软提 供的那些示例还有 IBuySpyStore, IBuySpyPortal 的代码可以参考。 加上我的机器很破,运行 Visual Studio .net 很吃力,所以代码 几乎都是一行一行敲出来的(当然里面有部分是Ctrl-C,Ctrl-V的, Copy也是自己刚写出来的)程序几乎都是从零做起。虽然很多在现 在看来很幼稚,但毕竟是自己的东西,还是挺喜欢的。 因为院系内部的一些原因,这个网站无法放在互联网上以实现我 最初的设想。也正是因为如此,我希望将这个网站的全部源代码公 开,供所有 ASP.net 的爱好者参考,更希望对初学者有所帮助。 如果有什么疑问,可以来信咨询,我会尽力帮忙。 Email: percyboy@800e.net QQ: 7893338 版权说明: 你可以自由的复制,传播本源代码,但请保持代码的完整性,保持本 说明文件的完整性。未经许可,请不要私自用于商业用途。 请不要改动部分代码之后或者干脆不改动,就署上你的大名。 我不对由于本源代码发生一切后果负责。 如果你要在网站中收录本代码的副本下载,请以Email通知本人知道 安装环境要求: 1)操作系统:Windows 2000(SP2以上) + IIS 5.0 Windows XP + IIS 5.1 2)Internet Explorer 5.5 以上 3)Microsoft Data Access Component 2.6 以上 4)Microsoft .net framework 再分发包 或者 Microsoft .net framework SDK 或者安装过 Visual Studio .net 安装说明: 1)解压缩后,直接放到某个目录下,以下以 D:pack 为例说明。 2)打开 IIS 管理单元,新建虚拟目录,别名作 pack, 指向 D:pack,权限:读取,运行脚本就可以了就行了。    本虚拟目录要设置为 应用程序 级别的,方法是:    在IIS管理单元的pack虚拟目录右击,打开“属性”对话框,    在“虚拟目录”选项卡下方,“应用程序名”后面点“创建”按钮。 特殊目录: D:packpackaging_data D:packupload 需要可写入权限。 3)打开 D:packweb.config 文件进行如下设置: 在 appSettings 这一节中, 将所有物理地址改变为你的实际物理地址,即: D:pack D:packpackaging_datadb2.mdb D:packpackaging_datacounter.xml 在 system.web 节,authentication 子节, 为了避免重名,可以更改 cookie 名,具体位置在: 一个站点, 则可以直接改为根目录: path="/" 下面这一行意思是:现在不是调试模式: 不会显示显示详细的出错跟踪信息。 其他的设置,你可以自行改动,如果你不懂,可以不管那些。 4)D:packin 文件夹中除了 packaging.dll 文件外的 那几个 vb 文件是组件的源代码,mk.dat 是编译用的批处理文件。 网站发布时,这些文件应该被删除。 5)如果你使用的是 NTFS 格式的磁盘,请注意进行权限设置: 以下给出最严格的权限设置: (当然你可以采用比这些更为宽松的权限设置) D:pack Administrators 允许:完全控制 aspnet_wp 允许:读取及运行,列出文件夹目录,读取 本目录不继承父目录可继承权限。 D:packpackaging_data Administrators 允许:完全控制 aspnet_wp 允许:读取及运行,列出文件夹目录,读取,写入 继承父目录权限 D:packupload Administrators 允许:完全控制 aspnet_wp 允许:读取及运行,列出文件夹目录,读取,写入 继承父目录权限 6)关于数据库防下载的问题,下面介绍两种方法: i)db2.mdb 中包含一个名为 nodown 的表,如果将 db2.mdb 改名为 db2.asp 就可以防止下载。当然因为是 ASP 版本的防下载,你的服务器必须解释ASP才行。 原理见: http://www.aspsky.net/article/index.asp?classid=2&Nclassid=5 ii)用得多的一种方法是将文件重命名为 db2.asax 这样也可以达到防止下载的目的,原理是: ASP.net 环境禁止访问 *.asax 文件。 上述两种方法,都要记着要把 web.config 中的相应地址改变。 好了,现在打开浏览器,输入: http://localhost/pack/ http://(你的机器名)/pack/ http://127.0.0.1/pack/ http://(你的真实IP)/pack/ 就应该可以看到这个站了! 如果还不能看到的话,你就要仔细检查一下 IIS 方面的相关设置, 比如 IP 限制,比如默认文档是否有 Default.aspx 还有,Microsoft Data Access Component 如果不是 2.6 以上版本的话, 将无法访问数据库。 还有一条,比较幼稚的问题,你装了 Microsoft .net 环境了没有? 使用说明: 1)目前有两个账户: 一个是系统管理员: 账户:percyboy 密码:percyboy 这个用户一定不要删除,否则很多管理功能无法进行,你看了源代码就知道了。 一个是普通学生身份(就是我自己了:)) 账户:破宝 密码:percyboy 我们专业内部的学生可以发表自己的作品,外部注册的用户没有此权限。 2)因为缩略图是使用当时生成的,所以时间长了, D:packupload mp 目录中就会有好多垃圾小图片,只怪当时的设计欠考虑,但也不想再改动了。 3)已知的一个bug,登陆之后,页面上方的“欢迎”内容没有变化,需要 刷新一下,或者打开另一个页面之后,才会出现用户的名字,还有“集体管理”的 链接。也不想改动了。 percyboy

62,253

社区成员

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

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

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

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