Перейти к содержанию

Вопрос по соединению с СУБД Mysql


Дос

Рекомендуемые сообщения

Проблема в следующем. MySql не закрывает соединение с сервером, закрывает только подключение к БД myConnection.Close(), тем самым количество подключений растет при достижение максимума, СУБД не работоспособна. Как решить эту проблему, может возможно указать время жизни подключения? принцип следующий соединение -> запрос -> отключение Заранее благодарю

		private static MySqlConnection myConnection;
	//################################################################################
#
	// Подключение к БД
	//################################################################################
#
	public bool ConnectionDataBase()
	{
		try
		{
			String myConnectionString = "Server = localhost; Database = ****; Uid = username; Pwd = *******;Port=3306;";
			myConnection = new MySqlConnection(myConnectionString);
			myConnection.Open();
			//myConnection.;
			return true;
		}
		catch
		{
			myConnection.Dispose();
			GC.Collect();
			return false;
		}
	}
	//################################################################################
#
	// Отключение от БД
	//################################################################################
#
	public bool DisconnectionDataBase()
	{
		myConnection.Close();
		myConnection.Dispose();
		GC.Collect();
		return true;
	}

Ссылка на комментарий
Поделиться на другие сайты

		// get addresses from database
	//

	List<Address> addresses;

	private void GetAddresses(string street_filter)
	{
		addresses = new List<Address>();

		using (SQLConnection connection = new SQLConnection(Session.ConnectionString))
		{
			// get addresses
			SQLCommand command = new SQLCommand("SELECT * FROM `addresses` WHERE `street` LIKE @StreetFilter", connection);
			command.Parameters.AddWithValue("@StreetFilter", "%" + street_filter + "%");

			connection.Open();

			var reader = command.ExecuteReader();


			// put addresses to list
			//

			while (reader.Read())
			{
				addresses.Add(new Address(Convert.ToInt32(reader["id"]), Convert.ToString(reader["building_type"]), Convert.ToString(reader["street"]), Convert.ToString(reader["building"]), Convert.ToString(reader["post_index"])));
			}

			//

			connection.Close(); 
		}

		grdAddresses.DataSource = null;
		grdAddresses.DataSource = addresses;
		grdAddresses.AutoGenerateColumns = false;
		grdAddresses.Refresh();
	}

	//

 

Вот мой кусок кода для MSSQL. Проблем, вроде, нет.

 

с ms sql проблем нет:) у меня там тоже все на мази, только MySql при использовании их dll. Короче думаю нужно будет делать так чтобы поддерживать подключение на всем протяжении работы клиента.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 months later...

Не создаю новой темы, т.к вопрос мелкий.

Пишу курсач в VS2008 с БД, использую встроенный SQL Express. Так вот, нужно удалить строку из таблицы + строки в других таблицах, которые ссылаются на удаляемую строку.

 

В Оракле вроде было delete constrait, а тут хз как.

Ссылка на комментарий
Поделиться на другие сайты

Ладно, сам сделал. Написал процедуру, которая сначала удаляет строки в зависимыч табличках, а потом и саму строку в главной таблице

Ссылка на комментарий
Поделиться на другие сайты

Тут можно было бы тригер написаь, тогда бы все было на уровне СБУД

Ссылка на комментарий
Поделиться на другие сайты

Тут можно было бы тригер написаь, тогда бы все было на уровне СБУД
Так процедура внутри БД, просто Делаю EXEC proc @id1,@id2

 

group_id INT NOT NULL REFERENCES groups(id) ON DELETE CASCADE

Вот этого не знал

Ссылка на комментарий
Поделиться на другие сайты

Так процедура внутри БД, просто Делаю EXEC proc @id1,@id2

 

я имел ввиду ссылочную целостность на основе триггеров, функция - это немного не то...

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...