2009-10-29 48 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嗎?你是否正確設置了數據庫連接字符串?當連接字符串丟失或不正確時,也會發生此問題。

相關問題