Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Практический пример на чтение данных из базы данных.

Данный пример показывает принцип чтения данных из базы данных. Программа запрашивает у пользователя строку запроса и выводит на экран или в файл полученные результаты. При анализе не забудьте подключить 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();
				
			}
		}
	}
}


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru