System.Data.SqlClient
Чтение данных из базы SQL Server происходит аналогичным образом – пространства имен OleDb и SqlClient имеют практически одинаковый синтаксис. Ниже приведена версия предыдущей программы для SQL Server:
Imports System.Data.SqlClient Module Modulel Sub Main() Dim mySQLConnString As String Dim mySQLConn As SqlConnection Dim dbReader As SqlDataReader Dim dbCmd As SqlCommand = New SqlCommand( "SELECT Employees.FirstName.Employees.LastName FROM Employees") Try mySQLConnString = _ "uid-test:password=apress; database=northwind:server=Apress" mySQLConn = New SqlConnection(mySQLConnString) mySQLConn.Open() dbCmd.Connection = mySQLConn dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult) Do While dbReader.Read() ' Вывести данные в консольном окне Console.WriteLinetdbReader.GetString(0) & "." &_ dbReader.GetString(1)) Loop Catch e As Exception MsgBox(e.Message) End Try Console. ReadLine() End Sub End Module
Основное различие (помимо имен классов) наблюдается в формате строки соединения. Предполагается, что на сервере Apress имеется учетная запись с паролем apress. При подключении к SQL Server в строке соединения указывается идентификатор пользователя, пароль, сервер и имя базы данных. Передавая эту информацию, мы получаем объект соединения. Конечно, лишь простейшие запросы формулируются в виде простой строки; в любом сколько-нибудь нетривиальном случае строку запроса приходится строить из отдельных фрагментов.
Примечание
Несмотря на разный формат строк соединения, в приложениях SQL и OLE DВ используется одна и та же программная модель ADO.NET – это весьма существенное преимущество. Наличие общих интерфейсов IDbConnection, IdbCommand и т. д. значительно упрощает написание обобщенного кода в ADO.NET.