2016-05-27 97 views
1

我在筆記本電腦中創建了一個項目,並且工作正常。ASP.NET - System.NullReferenceException:未將對象引用設置爲對象的實例

我將我的項目轉移到另一臺筆記本電腦,現在它給了我一個System.NullReferenceException錯誤。

不知何故,數據庫沒有建立,它給出了一個NULL異常。

我的代碼:

public partial class registration : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (IsPostBack) 
     { 
      // error is here 
      SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["registerationConnectionString"].ConnectionString); 

      conn.Open(); 
      string chekuser = "select count(*) from userdata where uname='" + TextBoxUN.Text + "'"; 
      SqlCommand com = new SqlCommand(chekuser, conn); 
      int temp = Convert.ToInt32(com.ExecuteScalar().ToString()); 
      if (temp == 1) 
      { 
       Response.Write("User already Exist: "); 
      } 
      conn.Close();     
     } 
    } 
} 

WEB.CONFIG

<configuration> 

    <appSettings/> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"/> 

    <httpRuntime/> 
    </system.web> 
</configuration> 
+0

拋出的異常在哪裏?您可能錯過了使用連接字符串的相應配置。 –

+0

@DavidPine我不知道在哪裏。我對ASP.NET很陌生,對此我一無所知。你能告訴我一種設置數據庫連接的方法,以便我的其餘代碼可以正常工作嗎? – OBJ

+0

我回答了問題 –

回答

0

由於錯誤是在這條線存在的:

SqlConnection conn = 
    new SqlConnection(ConfigurationManager.ConnectionStrings 
              ["registerationConnectionString"] 
              .ConnectionString); 

你應該假設ConfigurationManager.ConnectionStrings是空的,查找可能未正確複製的配置文件。當您嘗試從.ConfigurationManager.ConnectionStrings的索引訪問器嘗試.ConnectionString時,它將返回null,因爲您尚未在您的web.config中配置一個。請在web.config查看connectionStrings部分。

更新

由於您提供的web.config只需添加connectionStrings根據需要:

<configuration> 
    <connectionStrings> 
    <add name="registerationConnectionString" 
     connectionString="Data Source=.;Initial Catalog=DBNAME;Integrated Security=True;Connect Timeout=15;" /> 
    </connectionStrings> 
    <appSettings/> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"/>  
    <httpRuntime/> 
    </system.web> 
</configuration> 
+0

我的web.config文件是空的。我在我的問題中添加了我的Web.config。 – OBJ

+0

謝謝,但現在它給了我一個網絡錯誤'conn.open();' – OBJ

+0

'這是一個不同的SO問題我的朋友。您需要確保您可以連接到該服務器,我通常首先在SSMS中對此進行測試。但網絡錯誤意味着你已經超過了'null'異常錯誤。我欣賞upvote並接受答案。 :P見此鏈接https://blogs.msdn.microsoft.com/sql_protocols/2008/04/30/steps-to-troubleshoot-sql-connectivity-issues/ –

0

您不必在與名web.config文件中的任何連接字符串= registerationConnectionString從而ConfigurationManager.ConnectionStrings["registerationConnectionString"]給我們空值,然後當我們想要得到ConnectionString爲空時,它給我們System.NullReferenceException。您可以通過在web.config中添加以下部分來解決此問題。

<connectionStrings> 
    <add name="registerationConnectionString" 
     connectionString="Data Source=YourServerName; 
     Initial Catalog=YourDatabaseName; 
     Persist Security Info=True; 
     User ID=yourUserId; 
     Password=yourPassword" /> 
</connectionStrings> 
相關問題