-
MY PROJECTS
-
Recent Posts
- SQL.How can you compare two nullable values safely, and how does IS DISTINCT FROM differ from <>?
- SQL.How are NULL values ordered by ORDER BY, how do defaults differ between databases, and how can you control their placement?
- SQL.How does NULL propagate through arithmetic expressions, and how can COALESCE and NULLIF help handle missing values and division by zero?
- SQL.How does NULL affect join conditions, and why can filtering the right-hand table in WHERE remove unmatched rows from a LEFT JOIN?
- SQL.How do GROUP BY and DISTINCT treat NULL values, even though NULL = NULL evaluates to UNKNOWN?
- SQL.How do aggregate functions handle NULL, and what is the difference between COUNT(*), COUNT(column), and COUNT(DISTINCT column)?
- SQL.How does NULL affect IN and NOT IN, and why can NOT EXISTS be a safer choice when a subquery returns nullable values?
- SQL.How do WHERE, HAVING, and CHECK constraints treat conditions that evaluate to UNKNOWN?
- SQL.Why do column = NULL and column <> NULL not work as expected, and when should you use IS NULL and IS NOT NULL?
- SQL.What is SQL’s three-valued logic (TRUE, FALSE, UNKNOWN), and how do AND, OR, and NOT behave with UNKNOWN?
- ChromeDevTools.Watch all failed requests
- SQL.What are domain types (or constraints on data types), and how do they help enforce data correctness?
- SQL.How does SQL handle comparisons between different data types (for example, string vs number), and why is this dangerous?
- SQL.What is the difference between DATE, TIME, TIMESTAMP, and TIMESTAMPTZ, and which one should be used for business events?
- SQL.How do numeric types like INTEGER, BIGINT, DECIMAL, and FLOAT differ in terms of precision and use cases?
- SQL.What problems can arise from implicit type casting in SQL, and how can it affect indexes?
- SQL.How does NULL differ from 0, an empty string, or FALSE in SQL?
- SQL.What is the difference between CHAR, VARCHAR, and TEXT, and when would you choose each?
- SQL.What is MVCC ?
- SQL.What is AutoVacuum Postgres ?
Categories
- Aptana
- Azure
- C#
- DataSnap
- DBExpress
- Delphi
- Delphi и сети
- Delphi. Язык программирования
- ExtJS
- FastReport
- FireDAC
- FireMonkey
- GIT
- ICS
- IDE
- IIS
- Indy
- InnoSetup
- javascript
- jQuery
- JSON
- LiveBindings
- MSHTML
- MySQL
- PHP
- REST
- Ribbons
- SMS
- SQL инструкции
- SVN
- TRichView
- UniGui
- WebBroker
- WinAPI
- Windows
- Алгоритмы
- Без рубрики
- Деревья
- Ищу ответ
- Компонентостроение
- Мои компоненты
- Начальный уровень
- Обработка исключений
- Парсинг
- Потоки(Threads)
- Регулярные выражения
- Тестирование приложений
Category Archives: C#
C#. EntityFramework. FirstApp CodeFirst Approach
Чтобы непосредственно начать работать с Entity Framework, создадим первое приложение. Для этого нам нужна будет, во-первых, среда разработки. В качестве среды разработки выберем Visual Studio 2015.
Posted in C#
Comments Off on C#. EntityFramework. FirstApp CodeFirst Approach
C#. DataContext. ExecuteCommand и ExecuteQuery
Для непосредственного выполнения кода sql в классе DataContext определены методы ExecuteCommand() и ExecuteQuery(). Метод ExecuteCommand() принимает выполняемое sql-выражение и список параметров:
|
1 2 3 4 |
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; DataContext db = new DataContext(connectionString); int modifedRowsNumber = db.ExecuteCommand("DELETE FROM Users WHERE Id={0}", 40); |
В данном случае удаляется объект по id, который равен 40. Возвращаемое методом число указывает на количество затронутых командой строк. Метод ExecuteQuery() имеет похожее применение, только … Continue reading
Posted in C#
Comments Off on C#. DataContext. ExecuteCommand и ExecuteQuery
C#. Delete objects in LINQ to SQL
Для удаления объекта из базы данных применяется метод DeleteOnSubmit() или DeleteAllOnSubmit(), если удаляется список объектов.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; DataContext db = new DataContext(connectionString); // получим последний объект для удаления var user = db.GetTable<User>().OrderByDescending(u=>u.Id).FirstOrDefault(); if(user!=null) { Console.WriteLine("Удаляемый объект:"); Console.WriteLine("Id: {0}", user.Id); Console.WriteLine("Имя: {0}", user.FirstName); Console.WriteLine("Возраст: {0}", user.Age); db.GetTable<User>().DeleteOnSubmit(user); db.SubmitChanges(); Console.WriteLine("Объект удален"); } |
В данном случае удаляется последний элемент из таблицы. В итоге при удалении будет сгенерировано и выполнено следующее sql-выражение:
|
1 2 3 4 5 6 7 8 9 |
DELETE FROM [Users] WHERE ([Id] = @p0) AND ([Name] = @p1) AND ([Age] = @p2) @p0 int, @p1 nvarchar(4000), @p2 int @p0=42, @p1='Ronald', @p2=34 |
Правда, у данного способа есть большой недостаток: если … Continue reading
Posted in C#
Comments Off on C#. Delete objects in LINQ to SQL
C#. Insert objects in LINQ to SQL
Чтобы добавить новый объект в базу данных, необходимо вызвать у таблицы в контексте данных метод InsertOnSubmit() или InsertAllOnSubmit()(если надо добавить список объектов).
Posted in C#
Comments Off on C#. Insert objects in LINQ to SQL
C#. Update objects in LINQ to SQL
При получении объектов из базы данных в контекст DataContext эти объекты кэшируются, и у них устанавливается состояниеUnchanged. Если мы изменим значения свойств какого-либо объекта из полученного набора, то DataContext для этого объекта создает копию с измененными значениями и устанавливает у … Continue reading
Posted in C#
Comments Off on C#. Update objects in LINQ to SQL
C#. Some operations in LINQ to SQL
Фильтрация и сортировка Чтобы применить фильтрацию и сортировку в LINQ to SQL, мы можем воспользоваться стандартными операторами и выражениями LINQ. Например, выведем всех пользователей, у которых возраст больше 25 и упорядочим по имени:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; DataContext db = new DataContext(connectionString); var query = from u in db.GetTable<User>() where u.Age > 25 orderby u.FirstName select u; // или так // var query = db.GetTable<User>().Where(u => u.Age > 25).OrderBy(u => u.FirstName); foreach (var user in query) { Console.WriteLine("{0} \t{1} \t{2}", user.Id, user.FirstName, user.Age); } |
Операторы where и orderby позволяют произвести … Continue reading
Posted in C#
Comments Off on C#. Some operations in LINQ to SQL
Linq to SQL Intro
LINQ to SQL представляет технологию доступа и управления реляционными данными. Данная технология позволяет составлять запросу к бд в удобной форме в с помощью операторов LINQ, которые затем трансформируются в sql-выражения. Ключевыми объектами здесь являются сущности, которые хранятся в базе данных, … Continue reading
Posted in C#
Comments Off on Linq to SQL Intro
DataSet and XML
Встроенные возможности DataSet позволяют производить некоторые операции с xml-документами, в частности, сохранять данные из dataset в xml и, наоборот, загружать из xml в dataset. Подобные возможности позволяют при необходимости использовать dataset в качестве посредника между базой данных и xml-файлами. Сохранение … Continue reading
Posted in C#
Comments Off on DataSet and XML
C#. LINQ to DataSet
Одним из преимуществ использования DataSet является то, что мы можем использовать для работы с данными в DataSet технологию LINQ. Например, выведем из таблицы объекты по какому-нибудь условию:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
DataSet ds = new DataSet("Store"); // таблица компаний DataTable companiesTable = new DataTable("Companies"); DataColumn compIdColumn = new DataColumn("Id", Type.GetType("System.Int32")); DataColumn compNameColumn = new DataColumn("Name", Type.GetType("System.String")); // добавляем столбцы companiesTable.Columns.Add(compIdColumn); companiesTable.Columns.Add(compNameColumn); // добавляем таблицу в dataset ds.Tables.Add(companiesTable); // вторая таблица - смартфонов компаний DataTable phonesTable = new DataTable("Phones"); DataColumn phoneIdColumn = new DataColumn("Id", Type.GetType("System.Int32")); DataColumn phoneNameColumn = new DataColumn("Name", Type.GetType("System.String")); DataColumn phonePriceColumn = new DataColumn("Price", Type.GetType("System.Decimal")); DataColumn phoneCompanyColumn = new DataColumn("CompanyId", Type.GetType("System.Int32")); // добавляем столбцы в таблицу смартфонов phonesTable.Columns.Add(phoneIdColumn); phonesTable.Columns.Add(phoneNameColumn); phonesTable.Columns.Add(phonePriceColumn); phonesTable.Columns.Add(phoneCompanyColumn); // добавляем таблицу смартфонов ds.Tables.Add(phonesTable); // Добавим ряд данных companiesTable.Rows.Add(new object[] { 1, "Apple" }); companiesTable.Rows.Add(new object[] { 2, "Samsung" }); phonesTable.Rows.Add(new object[] { 1, "iPhone 5", 400, 1 }); phonesTable.Rows.Add(new object[] { 2, "iPhone 6S", 600, 1}); phonesTable.Rows.Add(new object[] { 3, "Samsung Galaxy S6", 500, 2 }); phonesTable.Rows.Add(new object[] { 4, "Samsung Galaxy Ace 2", 200, 2}); var query = from phone in ds.Tables["Phones"].AsEnumerable() from company in ds.Tables["Companies"].AsEnumerable() where (int)phone["CompanyId"] == (int)company["Id"] where (decimal)phone["Price"] >200 select new { Model = phone["Name"], Price = phone["Price"], Company = company["Name"] }; foreach (var phone in query) Console.WriteLine("{0} ({1}) - {2}", phone.Model, phone.Company, phone.Price); |
Результат работы В данном случае отображаются все смартфоны стоимостью больше 200 единиц. … Continue reading
Posted in C#
Comments Off on C#. LINQ to DataSet
C#. Relations beetwen tables in DataSet
Metanit DataSet может содержать множество таблиц, которые могут быть связаны различными отношениями. Например, пусть у нас в dataset будет определена таблица производителей смартфонов и таблица самих смартфонов, которая связана с первой:
Posted in C#
Comments Off on C#. Relations beetwen tables in DataSet