» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 234
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Язык программирования C#9 и платформа .NET5 читать книгу онлайн

Язык программирования C#9 и платформа .NET5 - читать бесплатно онлайн , автор Троелсен Эндрю

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Перейти на страницу:

public string GetString(int i) => throw new NotImplementedException();

public decimal GetDecimal(int i) => throw new NotImplementedException();

public DateTime GetDateTime(int i) => throw new NotImplementedException();

public IDataReader GetData(int i) => throw new NotImplementedException();

public bool IsDBNull(int i) => throw new NotImplementedException();

object IDataRecord.this[int i] => throw new NotImplementedException();

object IDataRecord.this[string name] => throw new NotImplementedException();

public void Close() => throw new NotImplementedException();

public DataTable GetSchemaTable() => throw new NotImplementedException();

public bool NextResult() => throw new NotImplementedException();

public int Depth { get; }

public bool IsClosed { get; }

public int RecordsAffected { get; }

Выполнение массового копирования

Добавьте в папку BulkImport новый файл открытого статического класса по имени ProcessBulkImport.cs. Поместите в начало файла следующие операторы using:

using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using Microsoft.Data.SqlClient;

Добавьте код для поддержки открытия и закрытия подключений (похожий на код в классе InventoryDal):

private const string ConnectionString =

  @"Data Source=.,5433;User Id=sa;Password=P@ssw0rd;Initial Catalog=AutoLot";

private static SqlConnection _sqlConnection = null;

private static void OpenConnection()

{

  _sqlConnection = new SqlConnection

  {

    ConnectionString = ConnectionString

  };

  _sqlConnection.Open();

}

private static void CloseConnection()

{

  if (_sqlConnection?.State != ConnectionState.Closed)

  {

    _sqlConnection?.Close();

  }

}

Для обработки записей классу SqlBulkCopy требуется имя (и схема, если она отличается от dbo). После создания нового экземпляра SqlBulkCopy (с передачей объекта подключения) установите свойство DestinationTableName. Затем создайте новый экземпляр специального класса чтения данных, который хранит список объектов, подлежащих массовому копированию, и вызовите метод WriteToServer(). Ниже приведен код метода ExecuteBulklmport():

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

public static void ExecuteBulkImport<T>(IEnumerable<T> records,

                                        string tableName)

{

  OpenConnection();

  using SqlConnection conn = _sqlConnection;

  SqlBulkCopy bc = new SqlBulkCopy(conn)

  {

    DestinationTableName = tableName

  };

  var dataReader = new MyDataReader<T>(records.ToList(),_sqlConnection,

                                       "dbo",tableName);

  try

  {

    bc.WriteToServer(dataReader);

  }

  catch (Exception ex)

  {

    // Здесь должно что-то делаться.

  }

  finally

  {

    CloseConnection();

  }

}

Тестирование массового копирования

Возвратите в проект AutoLot.Client и добавьте в Program.cs следующие операторы using:

using AutoLot.Dal.BulkImport;

using SystemCollections.Generic;

Добавьте в файл Program.cs новый метод по имени DoBulkCopy(). Создайте список объектов Car и передайте его вместе с именем таблицы методу ExecuteBulklmport(). Оставшаяся часть кода отображает результаты массового копирования.

void DoBulkCopy()

{

  Console.WriteLine(" ************** Do Bulk Copy ************** ");

  var cars = new List<Car>

  {

    new Car() {Color = "Blue", MakeId = 1, PetName = "MyCar1"},

    new Car() {Color = "Red", MakeId = 2, PetName = "MyCar2"},

    new Car() {Color = "White", MakeId = 3, PetName = "MyCar3"},

Перейти на страницу:
Комментариев (0)