- Автор темы
- #1
Практический пример на чтение данных из базы данных.
Данный пример показывает принцип чтения данных из базы данных. Программа запрашивает у пользователя строку запроса и выводит на экран или в файл полученные результаты. При анализе не забудьте подключить System.Data.Dll. Код примера:
Данный пример показывает принцип чтения данных из базы данных. Программа запрашивает у пользователя строку запроса и выводит на экран или в файл полученные результаты. При анализе не забудьте подключить System.Data.Dll. Код примера:
Код:
using System;
// Для работы с базами данных подключаем System.Data.Odbc
using System.Data.Odbc;
using System.IO;
namespace ReadFromDatabase
{
class Sample
{
static void Main()
{
// Переменная для соединения с базой данных
OdbcConnection sampleConnect=null;
// Переменная для выполнения запроса
OdbcCommand sampleCommand;
// Переменная для чтения полученных данных из базы
OdbcDataReader sampleReader = null;
int sampleCountColumns = 0;
string sampleDestination;
// Переменная для записи в файл
StreamWriter file=null;
try
{
Console.WriteLine("Welcome Back To Console !!!\nInput query( only select ):");
// Строка для соединения
string sampleConnection = @"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\sample.mdb";
sampleConnect = new OdbcConnection(sampleConnection);
// Открываем соединение с базой
sampleConnect.Open();
string sql;
sql = Console.ReadLine();
do
{
Console.WriteLine("Put C for console output,F for file Output");
sampleDestination = Console.ReadLine().ToUpper();
}while(sampleDestination!="C"&&sampleDestination!="F");
sampleCommand = new OdbcCommand(sql);
// Стыкуем с открытым соединением
sampleCommand.Connection =sampleConnect;
// Выполняем запрос на чтение данных
sampleReader = sampleCommand.ExecuteReader();
// Количество столбцов, полученных в результате работы запроса
sampleCountColumns = sampleReader.FieldCount;
if(sampleDestination=="C")
{
// Выводим заголовки столбцов
for(int i = 0;i<sampleCountColumns;i++)
Console.Write("{0,10}",sampleReader.GetName(i));
Console.WriteLine("\n\n");
}
else
{
file = new StreamWriter("data.txt");
for(int i = 0;i<sampleCountColumns;i++)
file.Write("{0,10}",sampleReader.GetName(i));
file.WriteLine("\r\n\r\n");
}
// Получаем в цикле каждый раз новую строку, пока не будет достигнут конец
while(sampleReader.Read())
{
if(sampleDestination=="C")
{
for(int i = 0;i<sampleCountColumns;i++)
{
// Получаем значение конкретного столбца из полученной строки
Console.Write("{0,10}",sampleReader[i]);
}
Console.WriteLine();
}
else{
for(int i = 0;i<sampleCountColumns;i++)
{
file.Write("{0,10}",sampleReader[i]);
}
file.WriteLine();
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// Закрываем все соединения
if(file!=null)
file.Close();
if(sampleReader!=null)
sampleReader.Close();
if(sampleConnect!=null)
sampleConnect.Close();
}
}
}
}