Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Читать онлайн Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 195 196 197 198 199 200 201 202 203 ... 206
Перейти на страницу:

 'ПРИМЕЧАНИЕ: Имя потока ресурса ResourceStream ЧУВСТВИТЕЛЬНО К РЕГИСТРУ,

 '   поэтому имя изображения должно В ТОЧНОСТИ совпадать с именем

 '   файла изображения, который вы добавили в проект

 '-----------------------------------------------------------------------

 m_myBitmapImage = New System.Drawing.Bitmap( _

  thisAssembly.GetManifestResourceStream( _

  assemblyName + ".MyImage.PNG"))

End Sub

Примеры к главе 14 (данные)

Листинг 14.1. Простой пример создания и использования объекта ADO.NET DataSet

'Объект DataSet, который мы собираемся загрузить

Private m_myDataSet As System.Data.DataSet

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

Const FILE_EMPTY_DATASET As String = "EmptyDataSet.xml"

Const FILE_1TABLE_DATASET As String = "1TableDataSet.xml"

Const dividerLine As String = _

 "-----------------------------" + vbCrLf

'-------------------------------------------------------

'Загрузить содержимое файла и присоединить его к тексту,

'содержащемуся в элементе управления textBox1

'-------------------------------------------------------

Private Sub addFileContentsToTextBox(ByVal fileName As String)

 'Открыть файл и считать его содержимое

 Dim myStreamReader As System.IO.StreamReader

 myStreamReader = System.IO.File.OpenText(fileName)

 Dim fileText As String = myStreamReader.ReadToEnd()

 'Закрыть файл

 myStreamReader.Close()

 'Присоединить содержимое к тексту, находящемуся в текстовом окне

 TextBox1.Text = TextBox1.Text + _

  dividerLine + "FILE: '" + fileName + "'" + vbCrLf + _

  dividerLine + fileText + vbCrLf

End Sub

'--------------------------------------------------------

'1. Создает набор данных,

' сохраняет набор данных в виде XML,

' отображает результаты в текстовом окне

'2.  Добавляет таблицу данных в набор данных,

'  добавляет два типизированных столбца в таблицу данных,

'  добавляет две строки в таблицу данных,

'  сохраняет набор данных в виде XML,

'  отображает результаты в текстовом окне

'--------------------------------------------------------

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

 ByVal e As System.EventArgs) Handles Button1.Click

 'Очистить текстовое окно от содержимого

 TextBox1.Text = ""

 '===========================================

 '1. Создать новый набор данных

 '===========================================

 m_myDataSet = New System.Data.DataSet("HelloWorld-DataSet")

 'Записать содержимое ADO.NET DataSet в виде XML и отобразить

 'файл в текстовом окне

 m_myDataSet.WriteXml(FILE_EMPTY_DATASET)

 addFileContentsToTextBox(FILE_EMPTY_DATASET)

 '==================================================

 '2. Добавить таблицу данных в набор данных ADO.NET,

 ' а также 2 строки данных в таблицу данных

 '==================================================

 Dim myTestTable As System.Data.DataTable

 myTestTable = m_myDataSet.Tables.Add("TestTable")

 '----------------------------

 'Добавить 2 столбца в таблицу

 '----------------------------

 'Добавить столбец данных в таблицу DataTable набора DataSet

 myTestTable.Columns.Add("TestColumn0", _

  GetType(System.DateTime))

 'Добавить строковый столбец в таблицу DataTable набора DataSet

 myTestTable.Columns.Add("TestColumn1", GetType(String))

 '--------------------------------

 'Добавить строки данных в таблицу

 '--------------------------------

 'Добавить строку данных в таблицу данных

 Dim rowOfData() As Object

 ReDim rowOfData(1)

 'Столбец 0 - это тип данных

 rowOfData(0) = System.DateTime.Today

 'Столбец 1 — это строковый тип

 rowOfData(1) = "а string of data today"

 myTestTable.Rows.Add(rowOfData)

 'Добавить вторую строку данных в таблицу данных

 Dim rowOfData2() As Object

 ReDim rowOfData2(1) 'Столбец 0 — это тип данных

 rowOfData2(0) = System.DateTime.Today.AddDays(1)

 'Столбец 1 — это строковый тип

 rowOfData2(1) = "tomorrow's string"

 myTestTable.Rows.Add(rowOfData2)

 'Записать содержимое набора ADO.NET DataSet в виде XML и отобразить

 'файл в текстовом окне

 m_myDataSet.WriteXml(FILE_1TABLE_ DATASET)

 addFileContentsToTextBox(FILE_1TABLE_DATASET)

End Sub

Листинг 14.2. Использование параметра XMLWriteMode при сохранении объекта ADO.NET DataSet

'-----------------------------------------------------------------------

'Необходимость в этой функции возникает по той причине, что .NET Compact

'Framework не поддерживает перегрузку:

' "public voidWriteXml(string, XmlWriteMode);"

'

'в качестве функции-члена "public" (только "private")

'-----------------------------------------------------------------------

Sub writeDataSetToFile(ByVal ds As System.Data.DataSet, _

 ByVal filename As String, _

 ByVal xmlWriteMode As System.Data.XmlWriteMode)

 'Создать объект XmlWriter для записи наших XML-данных

 Dim xmlWriter As System.Xml.XmlWriter

 xmlWriter = New System.Xml.XmlTextWriter(filename, _

  System.Text.Encoding.Default)

 'ПРИМЕЧАНИЕ: Эта перегруженная версия не является общедоступной (public)!

 'ds.WriteXml(filename, xmlWriteMode)

 'Вместо этого используем следующую функцию:

 ds.WriteXml(xmlWiiter, xmlWriteMode)

 xmlWriter.Close() 'Важно закрыть файл!

End Sub

Листинг 14.3. Сравнение производительности различных вариантов доступа к данным с использованием объектов DataSet

Private m_myDataSet As System.Data.DataSet 'Набор данных для тестирования

'Индексы столбцов и таблицы, подлежащие кэшированию

Private m_indexesLookedUp As Boolean = False

Private Const INVALID_INDEX As Integer = -1

Private m_IndexOfTestColumn_CreditCard _

 As Integer = INVALID_INDEX

Private m_IndexOfTestColumn_TravelDate _

 As Integer = INVALID_INDEX

Private m_IndexOfTestTable As Integer = INVALID_INDEX

'Столбцы данных и таблица, подлежащих кэшированию

Private m_TestColumn_CreditCard As System.Data.DataColumn

Private m_TestColumn_TravelDate As System.Data.DataColumn

Private m_TableCustomerInfo As System.Data.DataTable

Public Enum testType '3 вида тестов, которые мы можем выполнять

 textColumnLookup

 cachedIndexLookup

 cachedColumnObject

End Enum

'Эти константы определяют размерные характеристики тестов

Const DUMMY_ROWS_OF_DATA As Integer = 100

Const NUMBER_TEST_ITERATIONS As Integer = 500

'Табличная информация

Const TABLE_NAME_PASSENGERINFO As String = "CustomerTravelInfo"

Const COLUMN_NAME_DATE_OF_TRAVEL As String = "DateOfTravel"

Const COLUMN_NAME_PASSENGER_NAME As String = "PassengerName"

Const COLUMN_NAME_PASSENGER_CREDIT_CARD As String = _

 "PassengerCreditCard"

Const TEST_CREDIT_CARD As String = "IvoCard-987-654-321-000"

'--------------------

'Создает набор данных

'--------------------

Private Sub createDataSet()

 '1. Создать новый объект DataSet

 m_myDataSet = New System.Data.DataSet("TravelService Dataset")

 '2. Добавить объект DataTable в объект ADO.NET DataSet

 Dim myTestTable As System.Data.DataTable

 myTestTable = m_myDataSet.Tables.Add(TABLE_NAME_PASSENGERINFO)

 'Добавить 2 столбца в таблицу

 'Добавить столбец данных в таблицу DataTable набора данных DataSet

 myTestTable.Columns.Add(COLUMN_NAME_DATE_OF_TRAVEL, _

  GetType(System.DateTime))

 'Добавить столбец строк в таблицу DataTable набора данных DataSet

 myTestTable.Columns.Add(COLUMN_NAME_PASSENGER_NAME, _

  GetType(String))

 'Добавить столбец строк в таблицу DataTable набора данных DataSet

 myTestTable.Columns.Add(COLUMN_NAME_PASSENGER_CREDIT_CARD, _

  GetType(String))

 'Данные для размещения в строках данных

 Dim objArray() As Object ReDim objArray(2)

 '--------------------------------

 'Добавить строки данных в таблицу

 '--------------------------------

 Dim buildTestString As System.Text.StringBuilder

 buildTestString = New System.Text.StringBuilder

 Dim addItemsCount As Integer

 For addItemsCount = 1 To DUMMY_ROWS_OF_DATA

  'Выбрать день отъезда пассажира

  objArray(0) = System.DateTime.Today.AddDays(addItemsCount)

  'Выбрать имя пассажира

  buildTestString.Length = 0

  buildTestString.Append("TestPersonName")

  buildTestString.Append(addItemsCount)

  objArray(1) = buildTestString.ToString()

  'Связать с пассажиром текстовый номер кредитной карточки

  buildTestString.Length = 0

  buildTestString.Append("IvoCard-000-000-0000-")

  buildTestString.Append(addItemsCount)

  objArray(2) = buildTestString.ToString()

  'Добавить элементы массива в строку набора данных

  myTestTable.Rows.Add(objArray)

 Next

 'Добавить элемент, поиск которого мы хотим проводить при выполнении теста

 objArray(0) = System.DateTime.Today

 objArray(1) = "Ms. TestPerson"

 objArray(2) = ТЕST_CREDIT_CARD

 'Добавить элементы массива в строку набора данных

1 ... 195 196 197 198 199 200 201 202 203 ... 206
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре.
Комментарии