Server Explorer closed connection referenceКак открыть и закрыть соединение с базой данных (.db) Соединение данных, содержащееся в Server Explorer с использованием кода C# в Visual Studio?
Closed connection properties reference
Код, который следует, является уровень доступа к данным для приложения, которое пишется. Код имеет два методы делает две попытки подключения, используя OdbcConnection
и OdbcDataAdapter
, в файл база данных .db, который устанавливается в локальном пути к файлу и ввезен в визуальный Connections Studio Server Data Explorer:
using System.Data;
using System.Data.Common;
using System.Data.Odbc;
using System.Windows.Forms;
namespace Data.DataAccess
{
public class PatientDatabase
{
public OdbcDataAdapter ConnectAndCreateDataAdapter()
{
string selectCommand = "select * from patient";
var connectionString = "Driver={SQL Anywhere 10};DBN=Training1;UID=dba;PWD=sql;Data Source=C:\\Projects\\Training\\Training1.4.2\\Training1.db;";
OdbcConnection connection = new OdbcConnection(connectionString);
connection.Open();
var dataAdapter = new OdbcDataAdapter(selectCommand, connectionString);
return dataAdapter;
}
public void ConnectAndPopulateDataGridView(DataGridView dataGridView)
{
BindingSource patientBindingSourceTest = new BindingSource();
dataGridView.DataSource = patientBindingSourceTest;
string selectCommand = "SELECT patient.first_name + ' ' + patient.last_name as patient_name, patient.patient_id, patient.address, patient.city, patient.state, patient.zipcode, patient.phone, patient.notes, patient.classification_id, patient_classification.description from patient, patient_classification right join patient on patient.classification_id = patient_classification.patient_classification_id";
var connectionString = "Driver={SQL Anywhere 10};DBN=Training1;UID=dba;PWD=sql;Data Source=C:\\Projects\\Training\\Training1.4.2\\Training1.db;";
OdbcConnection connection = new OdbcConnection(connectionString);
connection.Open();
var dataSet = new DataSet();
var dataAdapter = new OdbcDataAdapter(selectCommand, connectionString);
DataTableMapping patientTableMapping = new DataTableMapping("Table", "patient");
dataAdapter.TableMappings.Add(patientTableMapping);
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("patient_id", "Patient ID"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("patient_name", "Patient Name"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("address", "Address"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("city", "City"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("state", "State"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("zipcode", "Zip Code"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("phone", "Phone"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("notes", "Notes"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("classification_id", "Classification ID"));
patientTableMapping.ColumnMappings.Add(new DataColumnMapping("description", "Classification"));
dataAdapter.Fill(dataSet);
patientBindingSourceTest.DataSource = dataSet.Tables["patient"].DefaultView;
dataGridView.Columns["Notes"].Visible = false;
dataGridView.Columns["Patient ID"].Visible = false;
dataGridView.Columns["Classification ID"].Visible = false;
var commandBuilder = new OdbcCommandBuilder(dataAdapter);
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
}
}
теперь вещь есть, этот код работает и функционирует довольно хорошо ... но ..
Соединение с данными (база данных) начинает закрываться при открытии решения. Ссылки на изображения выше показывают, о чем я говорю.
Проблема с этим мой код не работает, если это соединение не является «Open»
connection.Open();
не открывает эту связь, даже если они имеют ту же строку соединения при создании. Открытие соединения состоит из ручной правой кнопки мыши на базе данных, перечисленной в Connections данных и нажать кнопку «Обновить»
Итак ...
Есть ли способ, что это правая кнопку мыши можно сделать с помощью кода? Могу ли я открыть соединение, как если бы я мог подключиться, чтобы сказать ... SQL Server? В противном случае, что происходит, когда я компилирую и публикую код? Сохраняется ли база данных внутри приложения и отвечает на код connection.Open();
или когда DataAdapter
открывает соединение?