Вопрос про DataTable

144
08 марта 2019, 12:40

Сделал метод для выполнения любого sql запроса из базы данных, 1) подскажите, а вот DataTable в себя принимает результат выполнения запроса из базы,(то есть DataTable не затягивает в себя все данные и потом уже делает запрос на стороне клиента, или запрос происходит в базе и выдается только результат).

 class Program
    {
        static void Main(string[] args)
        {
            string connectionString = @"Data Source=VLADIM\SQLEXPRESS;Initial Catalog=northwind;Integrated Security=True";
            string qwery = "SELECT TOP 1000 [ProductID]\r\n      ,[ProductName]\r\n  FROM [northwind].[dbo].[Current Product List]";
            GetZapros2(connectionString,qwery);
            Console.ReadKey();
        }
        static void GetZapros2(string _connectionString, string qwery)
        {
            string connectionString = _connectionString;
            using (SqlConnection connection = new SqlConnection(connectionString))
            if (connection.State != ConnectionState.Open)
            {
                connection.Open();
            }
            var dt = new DataTable();
            //получаем результат запроса в DataTable...
            using (var adapter = new System.Data.SqlClient.SqlDataAdapter(qwery, connectionString))
            {
                adapter.Fill(dt);
            }
            //далее работаем с DataTable...
            foreach (DataRow dataRow in dt.Rows)
            {
                foreach (var item in dataRow.ItemArray)
                {
                    Console.WriteLine(item.ToString() + "; ");
                }
                Console.WriteLine();
            }
        }
    }

2) Как эффективно выловить возможные ошибки. Запрос например выдал ошибку,что я увижу в DataTable?

Answer 1
  1. ADO.NET- это технология работы с данными автономно. Когда DataAdapter заканчивает наполнение DataTable, то он закрывает соединение и вы работаете с копией(вырезкой), которая никакое влияние не оказывает на исходные данные. Когда вы хотите пульнуть данные назад в базу, то отправляете ему свой DataTable и он шлет данные на сервер. И пуляет он не все данные, а только измененные, что бы уменьшить трафик.
  2. Вы словите ошибку в моменте наполнения и DataTable останется пустым.
READ ALSO
Реализация методов System.Object

Реализация методов System.Object

Задался вопросом, а где можно найти механизм методов SystemObject? Ведь все время мы только используем или перегружаем эти методы, а где можно найти...

148
Как в Linux добавить корневой сертификат для браузеров через Net.Core?

Как в Linux добавить корневой сертификат для браузеров через Net.Core?

Генерировал свой CA сертификатЕсли импортировать из браузера то все работает

165
Automapper. Маппинг внутри CreateMap

Automapper. Маппинг внутри CreateMap

У меня есть примерно такой код:

160
Unit тесты в файлах

Unit тесты в файлах

Есть программа, которая заменяет подстроку в файлеРаботает правильно, но такой юнит тест:

134