2009-10-29 49 views
0

我有一个web应用程序,仅用于保存上传的视频文件的路径到sqlserver database.i在应用程序中有一个bussiness logicslayer。未将对象引用设置为对象的实例

我使用的是asp.net/vb.net。我把这个在BLL与存储过程的连接,

Dim Db As Database = DatabaseFactory.CreateDatabase() 

有that--

object reference not set to an instance of an object 

一个错误,如果任何人知道,请帮助我。

这里是堆栈跟踪:的对象意味着有被使用之前该wasnt实例化的引用不设置到一个实例

[NullReferenceException: Object reference not set to an instance of an object.] 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DefaultName() +38 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource) +65 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id) +122 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +316 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +168 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies) +104 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IReadWriteLocator locator, IConfigurationSource configurationSource) +228 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IConfigurationSource configurationSource) +65 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault() +72 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase() +86 
Uploader.BllUpdate.SaveFileDetails() in D:\Developers\Sinoy\uploader\Uploader\Uploader\BLL\BllUpdate.vb:37 
Uploader.Upload.UploadBtn_Click(Object sender, EventArgs e) in D:\Developers\Sinoy\uploader\Uploader\Uploader\Forms\Upload.aspx.vb:17 
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105 
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107 
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102 
+0

使用所使用的技术标记您的问题。这看起来可能是视觉基础,但我不知道是什么样的。你现在不会得到答案。 – 2009-10-29 05:23:15

+0

可能的重复[什么是NullReferenceException,我该如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Plutonix 2014-10-15 22:25:56

回答

0

对象引用。引用仍然是空的(或VB语言中,没有)。

捕获异常并检查堆栈跟踪发生的位置。

+2

在MSDN文档的嘲讽:“(**在Visual Basic中没有**)” – 2009-10-29 05:25:15

+0

哦是的。没有...完全忘了VB。 – 2009-10-29 05:32:03

+0

@pst LOL。没有... – mjv 2009-10-29 05:34:43

0

通常当你得到那个错误时,它是因为在它被分配了一个类的实例之前使用了一个类变量(比如DatabaseFactory或者那个类中的一个变量),就像Dim语句中的New关键字一样,或者分配。还有其他方法可以将实例分配给变量。如果你不这样做,你会得到这个错误信息。

0

对Microsoft企业库静态方法DatabaseFactory.CreateDatabase的调用导致Microsoft企业库中的某些内容崩溃 - 它使用的变量没有值(它是Nothing)。由于某些原因,它无法连接到您的数据库。为什么它不会抛出更多的信息异常我不知道 - 你必须问问微软。

我对企业库一无所知,但我想我会检查您的web.config or app.config configuration settings查看默认数据库的数据库连接字符串。这是基于documentation和一些Googling of online forums的5秒脱脂读取。

0

首先,确保你设置默认的数据库,即

而且,如果它是一个虚拟目录,请确保您的Web.config文件虚拟目录中没有得到通过根directoriy的网络覆盖。配置EnterpriseLibrary相关的元素。

0

你检查了你的web.config吗?你是否正确设置了数据库连接字符串?当连接字符串丢失或不正确时,也会发生此问题。

相关问题