Основы ASP.NET 2.0

Объектная модель источников данных


"Прежде всего нужны факты, а уж потом можно делать с ними, что хочешь."

Для работы с данными в ASP.NET существуют две группы специальных элементов управления. Первая предназначена для того, чтобы осуществлять связь с источниками данных. Вторая группа служит для отображения данных.

В Visual Studio .NET 2002 и 2003 можно было создавать привязки данных к странице по технологии "drag-and-drop". Эта технология была удобна тем, что упрощала написание кода, но вместе с тем она усложняла его модификацию. Объекты данных DataAdapter и DataConnection напрямую связывались Visual Studio 2005 формой. Сейчас это тоже возможно, но технология изменилась. Введена новая объектная модель источников данных. Классы-источники данных обеспечивают лучшую абстрактизацию, чем использование классов ADO.

Один из компонентов этой модели — строка соединения с источником данных. В Visual Studio 2005 все строки добавляются в конфигурационный файл web.config:

<configuration> <appSettings/> <connectionStrings> <add name="DemoBaseConnectionString1" connectionString="Data Source= \SQLEXPRESS;Initial Catalog=DemoBase;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="DatabaseConnectionString1" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\QuickStart\aspnet\sam- ples\data\App_Data\Database.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" /> </connectionStrings>


Разные страницы могут использовать одну и ту же строку соединения. Если по какой-либо причине соединение нужно будет изменить, например, если сервер изменил свое местоположение, изменения придется вводить централизованно в файле web.config.

Окно Data WebMatrix позволяет соединяться только с базами Access и SQL Server. Также работает перетаскивание, но требуется, чтобы в таблице имелся первичный ключ. Он не поддерживает и представлений (View) Access.

В WebMatrix существуют собственные элементы управления с префиксом wmx — AccessDataSourceControl и SqlDataSourceControl. Строка соединения записывается в свойство ConnectionString такого элемента управления. Программа WebMatrix служила испытательным полигоном для тех новых возможностей, которые позже были добавлены в Visual Studio .NET 2005:

<wmx:AccessDataSourceControl id="AccessDataSourceControl1" runat="server" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\My_DOCs\guestbook.mdb" SelectCommand="SELECT * FROM [guestbook]"></wmx:AccessDataSourceControl> <wmx:SqlDataSourceControl id="SqlDataSourceControl1" runat="server" ConnectionString="server='SQLEXPRESS'; trusted_connection=true; database='Northwind'" SelectCommand="SELECT * FROM [Categories]" DeleteCommand="" UpdateCommand=""></wmx:SqlDataSourceControl>

Итак, строка соединения состоит из указания провайдера, если это Oledb, сервера и базы на этом сервере.



База может находиться в отдельном файле с расширением .mdf. При соединении через ODBC указывается имя источника данных, тип базы, путь к файлу и драйвер:

<add name="ConnectionString1" connectionString="DSN=BB;DBQ=D:\Programming\Brain- bench\brainbench.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" providerName="System.Data.Odbc" />

Строки могут показаться сложными, но они создаются, когда мы просто перетаскиваем на форму в Design mode таблицу или запрос. При наличии опыта можно писать их и самим.

Строками соединений можно манипулировать и программно:

protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { // Создание класса ConnectionStringSettings ConnectionStringSettings conn = new ConnectionStringSettings(); conn.ConnectionString = "Server=localhost; " + "User ID=sa;Password=m1d2ffnkl; " + "Database=Northwind;Persist Security Info=True"; conn.Name = "Northwind ConnectionString"; conn.ProviderName = "System.Data.SqlClient"; //Добавление строки в файл web.config ConfigurationManager.ConnectionStrings.Add(conn); } }


Содержание раздела