My-library.info
Все категории

Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET. Жанр: Программирование издательство -, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Обработка баз данных на Visual Basic®.NET
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
831
Читать онлайн
Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET

Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET краткое содержание

Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET - описание и краткое содержание, автор Джеффри Мак-Манус, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения.

Обработка баз данных на Visual Basic®.NET читать онлайн бесплатно

Обработка баз данных на Visual Basic®.NET - читать книгу онлайн бесплатно, автор Джеффри Мак-Манус

Обработка данных на промежуточном уровне

До сих пор презентационный уровень описывался как визуальное представление приложения для клиента, а промежуточный уровень — как связующее звено (plumbing) между клиентом и основной частью приложения. Теперь пришло время показать роль окончательного уровня n-уровневой технологии, т.е. уровень данных. Обычно уровень данных состоит из базы данных, которая может иметь традиционную реляционную структуру, формат XML или формат файла INI. Далее в примерах этой главы в качестве хранилища данных используется SQL Server 2000.

В листинге 11.1 из главы 11, "Web-формы: приложения на основе ASP.NET для работы с базами данных", показан простой пример использования промежуточного уровня для подключения к базе данных, выполнения запроса и возвращения объекта в виде HTML-таблицы. Этот код никак не влияет на возвращаемые данные, а только отображает их. На самом деле запрос выполняется в базе данных. В листинге 12.4 повторяется код подпрограммы ShowCustomers из листинга 11.5, который в следующем примере используется в другом контексте.

ЛИСТИНГ 12.4. Код подпрограммы ShowCustomers

Private Sub ShowCustomers()

 ' Это простой пример использования функции,

 ' которая извлекает данные из таблицы tblCustomer

 ' и отображает их.

 ' Инициализация объекта подключения строкой

 ' подключения.

 Dim conn As New SqlConnection (connString)

 ' Затем инициализация объекта-команды

 ' строкой выполняемой команды SQL.

 Dim cmd As New SqlCommand("exec sp_GetCustomersOrders", conn)

 conn.Open()

 Dim dReader As SqlDataReader = _

  cmd.ExecuteReader(CommandBehavior.CloseConnection)

 While dReader.Read

  Response.Write(dReader.GetString(0))

  Response.Write(" " & dReader.GetString(1))

  Response.Write(" "& dReader.GetDateTime(2))

  Response.Write("<BR>")

 End While

 dReader.Close()

 conn.Close ()

End Sub

Обратите внимание на использование хранимой процедуры sp_GetCustomeOrders, которая является типичным примером размещения прикладной логики на уровне данных приложения. Это сделано просто потому, что кратчайшее расстояние между двумя точками определяется прямой линией. Код, расположенный на сервере баз данных, компилируется для наиболее эффективного выполнения сервером. Поэтому в результате хранимая процедура, которая располагается на уровне данных, будет выполнена быстрее, чем хранимая процедура, которая располагается на промежуточном уровне.

Однако, к сожалению, хранимые процедуры можно использовать далеко не во всех ситуациях. Это ограничение наводит на мысль воспользоваться еще одним простым принципом определения кратчайшего пути как пути наименьшего сопротивления. В приведенном примере наименьшее сопротивление означает, что следующий уровень над уровнем данных используется для выполнения прикладной логики. Рассмотрим, как в многоуровневом приложении, где клиентский уровень используется только для отображения данных, можно реализовать остальные уровни.

Создание повторно используемых компонентов промежуточного уровня

В этом разделе описано создание простого запроса в виде повторно используемого объекта. Основная цель данного примера — продемонстрировать способ создания функции в одном месте и использования ее сразу в нескольких приложениях. Создайте новый или откройте уже имеющийся проект Visual Basic .NET. Щелкните правой кнопкой мыши на имени проекта в окне Solution Explorer и выберите в контекстном меню команду Add→Add Component. В диалоговом окне Add New Item в текстовом поле Name введите имя нового компонента GetRowCount.vb.

НА ЗАМЕТКУ

Коды всех примеров в этой и предыдущей главах основаны на решении Novelty1. Пространство имен Novelty1 используется в остальных примерах данной главы.

После создания пустого компонента нужно включить в него код функции GetRowCount, которая возвращает целочисленное значение с количеством записей в таблице tblCustomers базы данных Novelty. В листинге 12.5 приведен полный код этого компонента.

ЛИСТИНГ 12.5. Код компонента GetRowCount.vb

Imports System.Data

Imports System.Data.SqlClient


Public Class GetRowCount

 Inherits System.ComponentModel.Component


 Public Function GetRowCount() As Integer

  Try

   Dim connString As String

   ' Помните обсуждение в главе 11 функции

   ' String.Intern? Если в памяти уже есть строка

   ' с тем же значением, то вместо создания нового

   ' экземпляра будет использована ссылка на нее.

   connString = _

    "server=(local);database=Novelty;TRUSTED_CONNECTION=Yes"

   Dim conn As New SqlConnection(connString)

   Dim cmd As New SqlCommand("select count(*) from tblCustomer", conn)

   conn.Open() Dim dReader As SqlDataReader = _

    cmd.ExecuteReader(CommandBehavior.CloseConnection)

   While dReader.Read

    ' Включить первую и единственную запись

    ' в результирующий набор.

    GetRowCount = dReader.GetValue(0)

   End While

   dReader.Close()

   conn.Close()

  Catch

   System.Console.WriteLine("An error has occurred " & Err.Description)

  End Try

 End Function


#Region " Component Designer generated code "

 Public Sub New(ByVal Container As System.ComponentModel.IContainer)

  MyClass.New()

  ' Код, созданный конструктором компонентов.

  Container.Add(Me)

 End Sub


 Public Sub New()

  MyBase.New()

  ' Вызов метода, созданный конструктором компонентов.

  InitializeComponent()

  ' Инициализация после вызова метода

  InitializeComponent().

 End Sub


 ' Переопределение метода Dispose для очистки списка компонентов.

 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

  If disposing Then

   If Not (components Is Nothing) Then

    components.Dispose()

   End If

  End If

  MyBase.Dispose(disposing)

 End Sub


 ' Код, созданный конструктором компонентов.

 Private components As System.ComponentModel.IContainer

  ' ЗАМЕЧАНИЕ: Код, созданный конструктором компонентов.

  ' Его можно изменять только с помощью конструктора компонентов

  ' Не изменяйте его вручную в окне редактирования кода.

  <System.Diagnostics.DebuggerStepThrough()> _

   Private Sub InitializeComponent()

   components = New System.ComponentModel.Container()

  End Sub

#End Region

End Class

Более глубокое изучение иерархии наследования используемых компонентов выходит за рамки данной поэтому далее описывается лишь простой пример ее использования. Хотя в данном коде метод ToString не используется, но он применяется после компиляции вспомогательного кода. Для его применения нужно вставить в код строку Inherits System.ComponentModel.Component, которая позволяет использовать функции класса System.ComponentModel.Component, унаследованные от класса System.Object. Это наследование позволяет использовать функции данного класса без выполнения дополнительных действий.

Для компоновки нового компонента щелкните на его имени в окне Solution Explorer правой кнопкой мыши и выберите в контекстном меню команду Build. Теперь готовый компонент можно использовать, но как? Создайте Web-форму GetRowCountTest.aspx со вспомогательным кодом, который показан в листинге 12.6. Обратите внимание, что в самом начале кода используется строка импорта компонента Novelty1.GetRowCount с функциями компонента GetRowCount.

ЛИСТИНГ 12.6. Вспомогательный код GetRowCountTest.aspx.vb

Imports Novelty1.GetRowCount


Public Class GetRowCountTest Inherits System.Web.UI.Page


#Region " Web Form Designer Generated Code "

 ' Вызов метода, созданный конструктором компонентов.

 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

 End Sub


 Private Sub Page_Init(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles MyBase.Init

  ' CODEGEN: Этот вызов метода организован конструктором Web-форм.

  ' Не изменяйте его вручную в окне редактора кода. InitializeComponent()

 End Sub

#End Region


 Private Sub Page_Load(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles MyBase.Load

  Dim GRC As New GetRowCount()

  Response.Write(GRC.GetRowCount.ToString)

  GRC.Dispose()

 End Sub

End Class

Здесь совсем не обязательно вызывать метод Dispose, предназначенный для очистки памяти от уже не нужного объекта. Создав данную страницу и вставив в нее код, щелкните правой кнопкой мыши на ее имени в окне Solution Explorer и выберите в контекстном меню команду Build and Browse. После выполнения всех созданных сценариев и доступа к базе данных Novelty будет отображена Web-страница с числом 2000.

Использование компонента в другом приложении


Джеффри Мак-Манус читать все книги автора по порядку

Джеффри Мак-Манус - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Обработка баз данных на Visual Basic®.NET отзывы

Отзывы читателей о книге Обработка баз данных на Visual Basic®.NET, автор: Джеффри Мак-Манус. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.