powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# - Глобальное подключение к SQL Server 2005
8 сообщений из 8, страница 1 из 1
C# - Глобальное подключение к SQL Server 2005
    #38343457
Mr. Abdu Jan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
Сразу скажу, что я новичок в C#, только вчера начал изучать.

Задача такая, нужно подключиться к базе данных на SQL Server.
Разобрался со строкой подключения и все такое.

Создал класс, который подключается к БД:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
namespace Exchange_Ofiice.Classes
{
    public class sqlConn
    {
        public void connectionMethod()
        {
            SqlConnection myConnection = new SqlConnection("user id=ID;password=PASS;server=SERVER;database=DB;");
            try
            {
                myConnection.Open();
            }
            catch
            {
                MessageBox.Show("Невозможно подключиться к Базе данных. Пожалуйста обратитесь к программистам!", "Ошибка подключения к Базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                myConnection.Close();
            }        
        }
    }
}



и создал еще один класс для авторизации:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
namespace Exchange_Ofiice.Classes
{
    public class auth:sqlConn
    {
        
        public void authMethod() 
        {
            SqlCommand myCommand = new SqlCommand("Command String", myConnection);                          
        }

    }
}



как получить результат подключения во втором классе?
Спасибо

P.S. строка SqlCommand myCommand = new SqlCommand("Command String", myConnection); не работает
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343482
Userus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr. Abdu Jan,

Мне кажется, тут в первую очередь архитектурные проблемы... и C# тут не при чем. Почему класс авторизации наследуется от класса коннекшена? Яблоки наследуете от Помидор. Яблоки должны наследоваться от Фруктов, если это нужно в Вашей архитектуре.

В Ваш класс авторизации можно передавать ссылку на экземпляр класса конекшена, но никак не наследовать. Но это лишнее, делать обвязку над тем, что и так само по себе просто.
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343501
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не нужно хранить глобальный коннекшн. Почитайте про connection pool
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343514
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr. Abdu Jan, никакого "результата подключения" здесь нет т.к. connectionMethod открывает соединение и тут же его закрывает. Если так хочется иметь это отдельным методом, то можно написать так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public static class SqlConnectionManager
{
	public static SqlConnection GetConnection()
	{
		SqlConnection sqlConn = new SqlConnection("user id=ID;password=PASS;server=SERVER;database=DB;");
		try
		{
			sqlConn.Open();
		}
		catch
		{
			MessageBox.Show("Невозможно подключиться к Базе данных. Пожалуйста обратитесь к программистам!", "Ошибка подключения к Базе данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
			return null;
		}
		
		return sqlConn;
	}
}
...
public void Authenticate()
{
	SqlConnection sqlConn = SqlConnectionManager.GetConnection();
	if (sqlConn == null) return;
	
	SqlCommand myCommand = new SqlCommand("Command String", sqlConn);
}



P.S. Не надо добавлять с имени метода слово Method т.к. и так понятно что это метод. Лучше сразу отвыкай так писать.
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343515
Mr. Abdu Jan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UserusВ Ваш класс авторизации можно передавать ссылку на экземпляр класса конекшена, но никак не наследовать. Но это лишнее, делать обвязку над тем, что и так само по себе просто.

можете показать на моем примере, а то я не понял.
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343534
Mr. Abdu Jan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Спасибо огромное, помогло
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343542
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr. Abdu Janможете показать на моем примере, а то я не понял.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
public void  Authenticate()
{
      using (SqlConnection conn_ = new SqlConnection(connString_);
      {
            SqlCommand myCommand = new SqlCommand("Command String", conn_);  
            ..............
      }
}
...
Рейтинг: 0 / 0
C# - Глобальное подключение к SQL Server 2005
    #38343587
Mr. Abdu Jan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за помощь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# - Глобальное подключение к SQL Server 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]