ExecuteReader(): выполняет sql-выражение и возвращает считанные из таблицы строки. Подходит для sql-выражения SELECT.
ExecuteScalar(): выполняет sql-выражение и возвращает одно скалярное значение, например, число. Подходит для sql-выражения SELECT в паре с одной из встроенных функций SQL, как например, Min, Max, Sum, Count.
Создание таблицы
Для создания базы данных применяется SQL-команда CREATE TABLE, после которой указывается имя создаваемой таблицы и в скобках определения столбцов.
Например, создадим таблицу "Users", которая будет иметь три столбца - _id (уникальный идентификатор), Name (имя), Age (возраст):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System;
using Microsoft.Data.Sqlite;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
using (var connection = new SqliteConnection("Data Source=usersdata.db"))
{
connection.Open();
SqliteCommand command = new SqliteCommand();
command.Connection = connection;
command.CommandText = "CREATE TABLE Users(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, Name TEXT NOT NULL, Age INTEGER NOT NULL)";
command.ExecuteNonQuery();
Console.WriteLine("Таблица Users создана");
}
Console.Read();
}
}
}
|
После выполнения команды в базе данных можно будет найти таблицу Users:
Для просмотра бд SQLite можно использовать специальный инструмент - DB Browser for SQLite.
Добавление данных
Теперь добавим в выше созданную таблицу Users новый объект:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System;
using Microsoft.Data.Sqlite;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
using (var connection = new SqliteConnection("Data Source=usersdata.db"))
{
connection.Open();
SqliteCommand command = new SqliteCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO Users (Name, Age) VALUES ('Tom', 36)";
int number = command.ExecuteNonQuery();
Console.WriteLine($"В таблицу Users добавлено объектов: {number}");
}
Console.Read();
}
}
}
|
Для вставки объекта используется sql-выражение INSERT, которое имеет следующий синтаксис:
1
|
INSERT INTO название_таблицы (столбец1, столбец2, столбецN) VALUES ( значение1, значение2, значениеN)
|
В ранее созданной таблице Users определены три столбца - __id и Age, которые хранят целое число, и Name, который хранит строку. Поэтому соответственно мы добавляем для столбца Name значение 'Tom', а для столбца Age число 36.
Здесь метод ExecuteNonOuery() возвращает число затронутых строк (в данном случае добавленных в таблицу объектов). Хотя нам необязательно возвращать результат метода, но данный результат может использоваться в качестве проверки, что операция, в частности, добавление, прошла успешно.
После добавления данных мы сможем их увидеть через DB Browser for SQLite:
Подобным образом можно добавить несколько объектов:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System;
using Microsoft.Data.Sqlite;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
string sqlExpression = "INSERT INTO Users (Name, Age) VALUES ('Alice', 32), ('Bob', 28)";
using (var connection = new SqliteConnection("Data Source=usersdata.db"))
{
connection.Open();
SqliteCommand command = new SqliteCommand(sqlExpression, connection);
int number = command.ExecuteNonQuery();
Console.WriteLine($"В таблицу Users добавлено объектов: {number}");
}
Console.Read();
}
}
}
|
Do'stlaringiz bilan baham: |