2016-05-27 3 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 имеет нулевое значение, и найдите файл конфигурации, который, вероятно, неправильно скопирован. Когда вы пытаетесь установить .ConnectionString из индексного аксессуара .ConfigurationManager.ConnectionStrings, он возвращает null так же, как вы не настроили его в своем web.config. Смотрите в web.config для участка connectionStrings.

Update

Поскольку вы при условии, что 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

Это другой вопрос, который мой друг. Вам нужно убедиться, что вы можете подключиться к этому серверу, я обычно тестирую это в SSMS. Но сетевая ошибка означает, что вы прошли ошибку исключения «null». Я ценю ответ и принятый ответ. : 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 из null, он дает нам 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> 
Смежные вопросы