Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Ошибка при подключении  [new]
Change
Member

Откуда: Ростов-на-Дону
Сообщений: 106
Привет! Я не могу подключится к серверу SQL. При вызове SqlConnection.Open(), программа вылетает с исключением.

вот функция при щелчке на кнопке мыши:(С#)

private void buttonConnect_Click(object sender, System.EventArgs e)
{
			string strconn;
			strconn="Server=(local);Initial Catalog=Nortwind;Trusted_Connection=Yes;";
			conn=new SqlConnection(strconn);
			
			if(conn!=null)
			{
				try
				{
					this.conn.Open();
				}
				catch(Exception exc)
				{	
					MessageBox.Show(exc.Message);
				}
				finally
				{
					conn.Close();
				}
			}
}

Имя исключения: System.NullReferenceException
Это сообщение об ошибке: Object reference not set to an instance of an object

У друзей все работает прально! Помогите разобраться, в чем проблема!!!!
12 май 08, 19:08    [5652760]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
SQL_Lamer
Member

Откуда: по колено в коде
Сообщений: 7454
Change
Привет! Я не могу подключится к серверу SQL. При вызове SqlConnection.Open(), программа вылетает с исключением.

вот функция при щелчке на кнопке мыши:(С#)

private void buttonConnect_Click(object sender, System.EventArgs e)
{
			string strconn;
			strconn="Server=(local);Initial Catalog=Nortwind;Trusted_Connection=Yes;";
			conn=new SqlConnection(strconn);
			
			if(conn!=null)
			{
				try
				{
					this.conn.Open();
				}
				catch(Exception exc)
				{	
					MessageBox.Show(exc.Message);
				}
				finally
				{
					conn.Close();
				}
			}
}

Имя исключения: System.NullReferenceException
Это сообщение об ошибке: Object reference not set to an instance of an object

У друзей все работает прально! Помогите разобраться, в чем проблема!!!!


Вы упростили код для удобства?
Покажите полностью
12 май 08, 23:53    [5653341]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Change
Member

Откуда: Ростов-на-Дону
Сообщений: 106
Пожалуйста:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

namespace adotraining
{
	
	public class MainForm : System.Windows.Forms.Form
	{
		private System.Windows.Forms.Button buttonConnect;
		private System.ComponentModel.Container components = null;

		private SqlConnection conn;

		public MainForm()
		{
			InitializeComponent();
		}

		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.buttonConnect = new System.Windows.Forms.Button();
			this.SuspendLayout();
			// 
			// buttonConnect
			// 
			this.buttonConnect.Location = new System.Drawing.Point(16, 152);
			this.buttonConnect.Name = "buttonConnect";
			this.buttonConnect.Size = new System.Drawing.Size(88, 24);
			this.buttonConnect.TabIndex = 0;
			this.buttonConnect.Text = "Подключение";
			this.buttonConnect.Click += new System.EventHandler(this.buttonConnect_Click);
			// 
			// MainForm
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(352, 262);
			this.Controls.Add(this.buttonConnect);
			this.Name = "MainForm";
			this.Text = "Автомагазин";
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new MainForm());
		}

		private void buttonConnect_Click(object sender, System.EventArgs e)
		{
			string strconn;
			strconn="Server=(local);Initial Catalog=Nortwind;Trusted_Connection=Yes;";
			conn=new SqlConnection(strconn);
			
			if(conn!=null)
			{
				MessageBox.Show("Объект создан");
				//try
				//{
					this.conn.Open();
				//}
				//catch(Exception exc)
				//{	
				//	MessageBox.Show(exc.Message);
				//}
				//finally
				//{
				//	conn.Close();
				//}
			}
		}
	}
}
13 май 08, 21:24    [5658433]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Student007
Member

Откуда: Санкт-Петербург
Сообщений: 671
SQL_Lamer
this.conn.Open()

(аки посторонний)

А если без "this."?
14 май 08, 03:19    [5658980]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
SQL_Lamer
Member

Откуда: по колено в коде
Сообщений: 7454
private void buttonConnect_Click(object sender, System.EventArgs e)
        {
            string strconn;
            strconn = "Server=(local);Initial Catalog=Nortwind;Trusted_Connection=Yes;";
            conn = new SqlConnection(strconn);

            try
            {
                conn.Open();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
            finally 
            {
                if (conn.State == ConnectionState.Open)
                    conn.Close(); 
            }
        }

1.Проверка на null не нужна - объект создается в любом случае.
2.Перед закрытием коннекта проверяйте, открыт ли он
3.Надо полагать, у вас Express edition MS Sql server?
тогда лучше пользуйтесь этой строкой:

"Data Source=.\SQLEXPRESS;Initial Catalog=Nortwind;Integrated Security=SSPI;"

4 - е, и самое главное - не вижу никакого смысла в вашем коде :)
14 май 08, 09:06    [5659159]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Change
Member

Откуда: Ростов-на-Дону
Сообщений: 106
Student007
SQL_Lamer
this.conn.Open()

(аки посторонний)

А если без "this."?


А разве есть разница???
14 май 08, 11:50    [5660430]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Change
Member

Откуда: Ростов-на-Дону
Сообщений: 106
3.Надо полагать, у вас Express edition MS Sql server?
тогда лучше пользуйтесь этой строкой:

"Data Source=.\SQLEXPRESS;Initial Catalog=Nortwind;Integrated Security=SSPI;"


не у мя MSSQLServer 2000, MS Visual Studio.NET 2003

4 - е, и самое главное - не вижу никакого смысла в вашем коде :)


Это что-то типа "Hello World!" для ADO.NET:)! да вот застрял!
14 май 08, 11:55    [5660478]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Student007
Member

Откуда: Санкт-Петербург
Сообщений: 671
Change
Student007
SQL_Lamer
this.conn.Open()

(аки посторонний)

А если без "this."?


А разве есть разница???


Честно не знаю =) - просто приглядывался к коду и к сообщению об ошибке. Ошибка звучит - ссылка на объект не установлена в экземпляр объекта и выскакивало это на this.conn.Open()
Проверка на conn!=Null вроде была выше, следовательно объект по ссылке conn существует, остается проверка на существование объекта this.conn!=Null - гипотетически предположил, что если может быть this.conn <> conn ... Но это так - пальцем в небо - я даже синтаксиса не знаю - разглядывал только.
14 май 08, 15:20    [5662305]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
SQL_Lamer
Member

Откуда: по колено в коде
Сообщений: 7454
Change
3.Надо полагать, у вас Express edition MS Sql server?
тогда лучше пользуйтесь этой строкой:

"Data Source=.\SQLEXPRESS;Initial Catalog=Nortwind;Integrated Security=SSPI;"


не у мя MSSQLServer 2000, MS Visual Studio.NET 2003

4 - е, и самое главное - не вижу никакого смысла в вашем коде :)


Это что-то типа "Hello World!" для ADO.NET:)! да вот застрял!


Поставьте уже хотя - бы 2005 студию, все - таки 2008 год на дворе :)

Воспользуйтесь такой строкой для MSSQLServer 2000:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Вот здесьсмотрите строки на здоровье

автор
Это что-то типа "Hello World!" для ADO.NET:)!

попытайтесь тогда сделать что-нибудь осмысленное, типа простой выборки из таблицы
14 май 08, 23:55    [5664970]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при подключении  [new]
Change
Member

Откуда: Ростов-на-Дону
Сообщений: 106
автор
Воспользуйтесь такой строкой для MSSQLServer 2000:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;


Пробовал-не помогает! И на connectionstrings.com тоже был, все строки перепробовал!

автор
попытайтесь тогда сделать что-нибудь осмысленное, типа простой выборки из таблицы


Тут бы хоть к серверу подключится для начала!

Но вот еще кое-что интересное: когда программа слетала с исключением, в в окошке Autos, если распахнуть список членов объекта conn - есть любопытная переменная-член IsShiloh с типом bool.
Так вот именно в колонке Value этой переменной и написанно что возникло исключение System.NullReferenceException. Отсюда вопрос что это за переменная такая и за что она отвечает???
15 май 08, 00:48    [5665130]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить