Ado.net

  • Автор темы ultra
  • Дата начала
Статус
Закрыто для дальнейших ответов.
U

ultra

#1
Всем привет!

1) Пишу курсовая по C#, работа преимущественно с Access. Дома при компилировании программы приходиться указывать вручную Data Source - таким образом connectionString содержить путь к моей БД.

Мне же хотелось бы чтобы программа работала с БД,находящейся в одной папке с программой.Как можно указать Data Source таким образом,чтобы программа автоматом подрубалась к БД.

2) Где храниь натсройки подключения? В ДЛЛ-ке где хранится моя функция авторизации, каждая функция подключается вручную(OleDbCommand,OleDbConnection), хотелось бы вынести настройки в отдельное место, дабы не прописывать каждый раз путь к БД, и т.д.
 
U

ultra

#3
Для: NikSoft
спасибо. Ну а как же сделать так, чтобы программа соединялась с БД,которая находится в одной и той же папке что и приложение? Может в connectionString указать просто Name.mdb ?
 
N

NikSoft

#4
Для: ultra
чтобы программа соединялась с БД,которая находится в одной и той же папке что и приложение?
Одно из возможных решений:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Configuration;
using System.Windows.Forms;

namespace MdbConnection
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
try 
{
string connectionString = ConfigurationManager.ConnectionStrings["PersonConnectionString"].ConnectionString;
OleDbConnection myConnection = new OleDbConnection(String.Format(connectionString, Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\") + 1)));
OleDbCommand myCommand = new OleDbCommand("SELECT first FROM person");
myCommand.Connection = myConnection;

myConnection.Open();
using (OleDbDataReader reader = myCommand.ExecuteReader())
{
while (reader.Read())
{
MessageBox.Show(Convert.ToString(reader["first"]), "Info",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
reader.Close();
}
myCommand.Connection.Close();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message + ex.StackTrace);
}

}
}
}
Файл конфигураций:
Код:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="PersonConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}company.mdb;Persist Security Info=False" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
company.mdb лежит в той же папке, что и MdbConnection.exe,MdbConnection.exe.config
 
Статус
Закрыто для дальнейших ответов.