问题描述
我用的是access数据库做表:usernamepassword事件代码:subcheckadmin(senderasobject,eascommandeventargs)selectcasee.commandargumentcase"exit"response.redirect("guestbook.aspx")case"send"dimconnasnewoledbconnection()dimcmdasnewoledbcommand()dimobjreaderasoledbdatareaderdimi,jasintegerconn.connectionstring="provider=microsoft.jet.oledb.4.o;datasource="&server.mappath("guestbook.mdb")conn.open()cmd.connection=conncmd.commandtext="select*fromadmin"objreader=cmd.executereader()dowhileobjreader.read()iftrim(username.text)=objreader.item("adminname")andpass.value=objreader.item("passwd")thenresponse.redirect("admin.aspx")exitdoendifloopcaution.text="登陆失败!"objreader.close()conn.close()endselectendsub出现的错误信息是:“/”应用程序中的服务器错误。--------------------------------------------------------------------------------没有可用的错误信息:REGDB_E_CLASSNOTREG(0x80040154)。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.OleDb.OleDbException:没有可用的错误信息:REGDB_E_CLASSNOTREG(0x80040154)。源错误:行16:dimi,jasinteger行17:conn.connectionstring="provider=microsoft.jet.oledb.4.o;datasource="&server.mappath("guestbook.mdb")行18:conn.open()行19:cmd.connection=conn行20:cmd.commandtext="select*fromadmin"源文件:D:liuyanadminlogin.aspx行:18堆栈跟踪:[OleDbException(0x80040154):没有可用的错误信息:REGDB_E_CLASSNOTREG(0x80040154)。][InvalidOperationException:未在本地计算机上注册“microsoft.jet.oledb.4.o”提供程序。]System.Data.OleDb.OleDbConnection.CreateProviderError(Int32hr)+77System.Data.OleDb.OleDbConnection.CreateProvider(OleDbConnectionStringconstr)+81System.Data.OleDb.OleDbConnection.Open()+203ASP.adminlogin_aspx.checkadmin(Objectsender,CommandEventArgse)inD:liuyanadminlogin.aspx:18System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgse)+84System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(StringeventArgument)+127System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandlersourceControl,StringeventArgument)+18System.Web.UI.Page.RaisePostBackEvent(NameValueCollectionpostData)+33System.Web.UI.Page.ProcessRequestMain()+1292
解决方案
解决方案二:
未在本地计算机上注册“microsoft.jet.oledb.4.o”提供程序。OLEDB的相关文件损坏,重新装一下MDAC2.8试一下.
解决方案三:
cmd.connection=conncmd.commandtext="select*fromadmin"改为cmd=newoledbcommand(="select*fromadmin",cnn)