Private Sub CreateDataSet()
' Создание объекта dsEmployeeInfo.
dsEmployeelnfo = New DataSet()
' Создание таблицы Employees.
Dim dtEmployees As DataTable = New DataTable("Employees")
dtEmployees.CaseSensitive = False
dtEmployees.Columns.Add("FirstName", Type.GetType("System.String"))
dtEmployees.Columns.Add("LastName", Type.GetType("System.String"))
dtEmployees.Columns.Add("DepartmentID", Type.GetType("System.Int32"))
' Вставка таблицы Employees в объект EmployeeInfo.
dsEmployeeInfo.Tables.Add(dtEmployees)
' Создание таблицы Departments с
' помощью перегруженной версии конструктора.
' Это более длительный способ при создании стандартных полей,
' но он позволяет задавать другие свойства полей (например, Readonly & Unique)
' до включения поля DataColumn в коллекцию Columns.
Dim dtDepartments As DataTable
dtDepartments = New DataTable()
dtDepartments.TableName = "Departments"
dtDepartments.MinimumCapacity = 5
dtDepartments.CaseSensitive = False
Dim NewColumn As New DataColumn()
With NewColumn
.ColumnName = "ID"
.DataType = Type.GetType("System.Int32")
.Readonly = True
.Unique = True
.AutoIncrement = True
End With
dtDepartments.Columns.Add(NewColumn)
NewColumn = New DataColumn()
With NewColumn
.ColumnName = "DepartmentName"
.DataType = Type.GetType("System.String")
.Unique = True
.AllowDBNull = False
End With
dtDepartments.Columns.Add(NewColumn)
' Включение таблицы Departments в объект dsEmployeeInfo.
dsEmployeeInfo.Tables.Add(dtDepartments)
End Sub
После создания экземпляра dsEmployeeInfo объекта DataSet создается таблица Employees с помощью перегруженных конструкторов объекта DataTable с использованием параметра – имени таблицы. Затем задается значение False для свойства CaseSensitivity объекта DataTable. Это свойство определяет, будут ли операции сортировки, поиска и фильтрации выполняться с учетом регистра символов. По умолчанию значение этого свойства определяется как значение свойства CaseSensitivity родительского объекта DataSet или принимается равным False, если объект DataTable создан независимо от объекта DataSet.
Свойство CaseSensitivity применяется только для данных объекта DataTable и не влияет на имена самих объектов DataTable. Например, объект DataSet может иметь две таблицы (или отношения) с именами или mytable или Mytable. Для работы с ними нужно записывать имена с точным указанием регистра символов, поскольку их поиск ведется с учетом регистра (case-sensitive search). Однако это не обязательно при наличии только одной таблицы с таким именем, поскольку при этом используется поиск без учета регистра (case-insensitive search).
Затем создаются определения полей с помощью метода Add объекта Column по указанному имени поля и типу данных. Учтите, что здесь указываются .NET-совместимые типы данных, а не используемые в базе данных типы. При отсутствии типа данных для него по умолчанию принимается строковый тип. Наконец, таблица Employee включается в объект dsEmployeeInfo.