Шаг 8 - Работа с данными

Библиотеки

Будут нужны:

using System.Data
using System.Data.OleDb
using System.Globalization

Присоединение к базе

//Attributes
public const string DB_CONN_STRING = 
    "Driver={Microsoft Access Driver (*.mdb)}; "+
    "DBQ=D:\\CS\\TestDbReadWrite\\SimpleTest.mdb";

Виды SQL-команд

Есть четыре вида операций:

Чтение данных

Производится с помощью класса OleDbDataReader.

TODO: посмотреть ссылку http://www.codeproject.com/dotnet/adonet_datareader.asp и описать класс подробнее.

Шаги, которые нужны:

Создать соединение, открыть его:

OleDbConnection conn =
    new OlebConnection(DB_CONN_STRING);
conn.Open();

Выполнить SQL-запрос к базе:

OleDbDataReader dr;
OleDbCommand cmd = 
    new OleDbCommand( "SELECT * FROM Person", conn );
dr = cmd.ExecuteReader();  

Считать все записи:

while (dr.Read())
{
    System.Console.WriteLine( dr["FirstName"] );
}  

закрыть соединение:

finally
{
    // Close the connection
    if (conn.State == DBObjectState.Open)
    {
        conn.Close();
    }
}

Чтение полей разных типов

Например так:

DateTime tUpdated =(DateTime)dr["Updated"];

Или так:

int nOrdinalAge = dr.GetOrdinal("Age");
if (dr.IsDBNull(nOrdinalAge))
{
    System.Console.WriteLine(" Age  : Not given!");
}
else
{
    int nAge = dr.GetInt32( nOrdinalAge );
    System.Console.WriteLine(" Age  : " + nAge);
}

Выполнение SQL-команд

int nNoAdded = cmdAdder.ExecuteNonQuery();

После выполнения команды можно сделать commit, тогда изменения станут сразу отражатся в возвращаемых данных:

cmd.ActiveConnection.BeginTransaction(); 
cmd.ActiveConnection.CommitTransaction(); 

Настройки

Где хранить строку соединения ? Можно в файле со строковыми ресурсами (см. http://www.firststeps.ru/dotnet/45.html, http://www.firststeps.ru/dotnet/46.html и http://www.firststeps.ru/dotnet/47.html)

Можно в реестре (см. http://www.firststeps.ru/dotnet/140.html)

А правильно - в xml-файлах конфигурации

ASP.NET

Установка, см. http://www.dotsite.spb.ru/articles/aspnet/installing.asp

Основные идеи:

1) ASPX-страница это HTML-текст с тегами двух видов: обычные теги отсылаются браузеру, а необычные обрабатываются на сервере. Необычные теги - это серверные элементы управления (server controls). Эти элементы имеют свойства и методы и составляют часть объектной модели страницы. Доступ к объектной модели можно получить из кода.

2) Каждой ASPX-странице сопоставлен некоторый код, который находится в отдельном файле с классом. В начале страницы указывается в каком именно файле находится этот код и на каком языке этот код написан.

Server Controls

Есть два вида контролов:

  1. Любой тег HTML с атрибутом runat="server" становится контролом
  2. Есть расшренные контролы в пространстве asp (называются Rich Server Controls)

Использование контролов снижает скорость выдачи страницы, но незначительно (потери - несколько часов в год, см. http://www.aspnextgen.com/tutorials.aspx?tutorialid=17)

Элементы, перечисленные ниже отображаются на теги HTML 3.2:

<asp:Button>
<asp:LinkButton>
<asp:ImageButton>
<asp:HyperLink>
<asp:TextBox>
<asp:CheckBox>
<asp:RadioButton>
<asp:DropDownList>
<asp:ListBox>
<asp:Image>
<asp:Label>
<asp:Panel>
<asp:Table>
<asp:TableRow>
<asp:TableCell>

Кроме этого там есть другие элементы, например AdRotator и календарь.

При желании можно написать свои элементы (см. http://www.aspnextgen.com/tutorials.aspx?tutorialid=20)

Примеры

Для разминки см. http://samples.gotdotnet.com/quickstart/aspplus/

Пример проекта см. http://www.ibuyspy.com

Web-сервисы

Это программы, которые могут возвращать некоторую информацию, и к которым можно обратиться зная их URL. Они основываются на стандартах XML, SOAP, WSDL и UDDI.

См. http://samples.gotdotnet.com/quickstart/aspplus/doc/webservicesintro.aspx.

Клиентские приложения

Работают с Web-сервисами.

См. http://samples.gotdotnet.com/quickstart/aspplus/doc/applications.aspx.


Предыдущий Шаг | Оглавление
Автор Сергей Радкевич