Использование коллекций
Коллекция — это список объектов одного и того же класса с одним и тем же родительским объектом. Объект коллекции всегда содержит имя типа объекта с суффиксом Collection. Например, для доступа к столбцам заданной таблицы используется тип ColumnCollection. Он содержит все объекты Column, принадлежащие одному и тому же объекту Table.
С помощью инструкции For...Each языка Microsoft Visual Basic или инструкции foreach языка Microsoft Visual C# можно перебирать все элементы коллекции.
Примеры
Чтобы использовать какой-либо из представленных примеров кода, необходимо выбрать среду, шаблон и язык программирования, с помощью которых будет создаваться приложение. Дополнительные сведения см. в разделе «Как создать проект Visual Basic SMO в Visual Studio .NET» или «Как создать проект Visual C# SMO в Visual Studio .NET» в электронной документации по SQL Server.
Ссылка на объект с помощью коллекции в языке Visual Basic
В данном примере кода демонстрируется задание свойства столбца с помощью свойств Columns, Tables и Databases. Эти свойства представляют собой коллекции, с помощью которых можно указать на конкретный объект при их использовании с именем объекта в качестве параметра. Для свойства объекта коллекции Tables требуются имя и схема.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Modify a property using the Databases, Tables, and Columns collections to reference a column.
srv.Databases("AdventureWorks2008R2").Tables("Person", "Person").Columns("ModifiedDate").Nullable = True
'Call the Alter method to make the change on the instance of SQL Server.
srv.Databases("AdventureWorks2008R2").Tables("Person", "Person").Columns("ModifiedDate").Alter()
Ссылка на объект с помощью коллекции в языке Visual C#
В данном примере кода демонстрируется задание свойства столбца с помощью свойств Columns, Tables и Databases. Эти свойства представляют собой коллекции, с помощью которых можно указать на конкретный объект при их использовании с именем объекта в качестве параметра. Для свойства объекта коллекции Tables требуются имя и схема.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Modify a property using the Databases, Tables, and Columns collections to reference a column.
srv.Databases("AdventureWorks2008R2").Tables("Person", "Person").Columns("LastName").Nullable = true;
//Call the Alter method to make the change on the instance of SQL Server.
srv.Databases("AdventureWorks2008R2").Tables("Person", "Person").Columns("LastName").Alter();
}
Последовательный перебор элементов коллекции на языке Visual Basic
В данном примере кода выполняется итерация по коллекции Databases и отображаются все подключения базы данных к экземпляру SQL Server.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
Dim count As Integer
Dim total As Integer
'Iterate through the databases and call the GetActiveDBConnectionCount method.
Dim db As Database
For Each db In srv.Databases
count = srv.GetActiveDBConnectionCount(db.Name)
total = total + count
'Display the number of connections for each database.
Console.WriteLine(count & " connections on " & db.Name)
Next
'Display the total number of connections on the instance of SQL Server.
Console.WriteLine("Total connections =" & total)
Последовательный перебор элементов коллекции на языке Visual C#
В данном примере кода выполняется итерация по коллекции Databases и отображаются все подключения базы данных к экземпляру SQL Server.
//Connect to the local, default instance of SQL Server.
{
Server srv = default(Server);
srv = new Server();
int count = 0;
int total = 0;
//Iterate through the databases and call the GetActiveDBConnectionCount method.
Database db = default(Database);
foreach ( db in srv.Databases) {
count = srv.GetActiveDBConnectionCount(db.Name);
total = total + count;
//Display the number of connections for each database.
Console.WriteLine(count + " connections on " + db.Name);
}
//Display the total number of connections on the instance of SQL Server.
Console.WriteLine("Total connections =" + total);
}