Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/277: Рейтинг темы: голосов - 277, средняя оценка - 4.90
11 / 11 / 0
Регистрация: 03.08.2011
Сообщений: 44
1

Как работать с БД SQLite

06.10.2011, 16:22. Просмотров 53263. Ответов 12
Метки нет (Все метки)

Подскажите пожалуйста как работать с БД Sqlite и с чем его едят в си шарпе! Тока с ним могу обращаться на языке PHP, или дайте ссылку буду очень блогадарен!
Поискал в гугле все на английском(
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2011, 16:22
Ответы с готовыми решениями:

Как работать с БД SQLite и с DataGridView?
Есть БД на SQLite нужно вывести данные с таблиц на DataGridView. Как это реализовать? И какие...

Файл cookies.sqlite не sqlite на самом деле, или как его открыть
хочу прочитать куки браузеров (это не противозаконно) оперу сделал, хром сделал, у хрома как раз...

Редактирование связанных объектов через EF в SQLite, C#, EF 6.2, SQLite, C# Winforms
Здравствуйте. Суть: используя вышеперечисленные технологии, при чтении из базы данных связанных...

Как работать с базами данных SQLite
Всем привет Подозреваю, что тема избитая, но , к сожалению, для себя решения не нашел. Я не...

12
6216 / 3517 / 899
Регистрация: 28.10.2010
Сообщений: 5,926
06.10.2011, 17:19 2
Лучший ответ Сообщение было отмечено как решение

Решение

1 Создание БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Data.SQLite;
using System.IO;
 
class Program
{
    static void Main(string[] args)
    {
        string databaseName = @"C:\cyber.db";
        SQLiteConnection.CreateFile(databaseName);
        Console.WriteLine(File.Exists(databaseName) ? "База данных создана" : "Возникла ошиюка при создании базы данных");
        Console.ReadKey(true);
    }
}

2 Создание таблицы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Data.SQLite;
 
class Program
{
    static void Main(string[] args)
    {
        const string databaseName = @"C:\cyber.db";
        SQLiteConnection connection = 
            new SQLiteConnection(string.Format("Data Source={0};", databaseName));
        SQLiteCommand command = 
            new SQLiteCommand("CREATE TABLE example (id INTEGER PRIMARY KEY, value TEXT);", connection);
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
        Console.ReadKey(true);
    }
}

3 Получение списка таблиц БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Data.Common;
using System.Data.SQLite;
 
class Program
{
    static void Main(string[] args)
    {
        const string databaseName = @"C:\cyber.db";
        SQLiteConnection connection = 
            new SQLiteConnection(string.Format("Data Source={0};", databaseName));
        connection.Open();
        SQLiteCommand command = new SQLiteCommand("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;", connection);
        SQLiteDataReader reader = command.ExecuteReader();
        foreach (DbDataRecord record in reader)
            Console.WriteLine("Таблица: " + record["name"]);
        connection.Close();
        Console.WriteLine("Готово");
        Console.ReadKey(true);
    }
}

4 Вставка записей
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Data.Common;
using System.Data.SQLite;
 
class Program
{
    static void Main(string[] args)
    {
        const string databaseName = @"C:\cyber.db";
        SQLiteConnection connection = 
            new SQLiteConnection(string.Format("Data Source={0};", databaseName));
        connection.Open();
        SQLiteCommand command = new SQLiteCommand("INSERT INTO 'example' ('id', 'value') VALUES (1, 'Вася');", connection);
        command.ExecuteNonQuery();
        connection.Close();
        Console.WriteLine("Готово");
        Console.ReadKey(true);
    }
}

5 Выборка строк
C#
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
using System;
using System.Data.Common;
using System.Data.SQLite;
 
class Program
{
    static void Main(string[] args)
    {
        const string databaseName = @"C:\cyber.db";
        SQLiteConnection connection = 
            new SQLiteConnection(string.Format("Data Source={0};", databaseName));
        connection.Open();
        SQLiteCommand command = new SQLiteCommand("SELECT * FROM 'example';", connection);
        SQLiteDataReader reader = command.ExecuteReader();
        Console.Write("\u250C" + new string('\u2500', 5) + "\u252C" + new string('\u2500', 60) + "\u2510");
        Console.WriteLine("\n\u2502" + "  id \u2502" + new string(' ', 30) + "value"  + new string(' ', 25)+ "\u2502");
        Console.Write("\u251C" + new string('\u2500', 5) + "\u253C" + new string('\u2500', 60) + "\u2524\n");
        foreach (DbDataRecord record in reader)
        {
            string id = record["id"].ToString();
            id = id.PadLeft(5 - id.Length, ' ');
            string value = record["value"].ToString();
            string result = "\u2502" + id + " \u2502";
            value = value.PadLeft(60 , ' ');
            result += value + "\u2502";
            Console.WriteLine(result);
        }
        Console.Write("\u2514" + new string('\u2500', 5) + "\u2534" + new string('\u2500', 60) + "\u2518");
        connection.Close();
        Console.ReadKey(true);
    }
}
Как работать с БД SQLite

41
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
01.11.2014, 18:40 3
Не видит метод CreateFile...хотя все библиотеки вроде бы подключены

Цитата Сообщение от Петррр Посмотреть сообщение
SQLiteConnection.CreateFile(databaseName);
Подскажи плиз, в чем может быть дело?
0
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
02.11.2014, 00:40 4
Не видит вообще никаких методов данного класса...проблемы с созданием коннекта, подскажите плиз в чем может быть дело
0
Миниатюры
Как работать с БД SQLite  
1440 / 1113 / 344
Регистрация: 11.04.2011
Сообщений: 2,613
03.11.2014, 16:41 5
tesler, все действия с полями класса производятся внутри методов класса. Нельзя использовать поле классе вне метода. В C# поле класса вне метода можно только инициализировать. Но ни как не вызвать для него, допустим, метода Open.
Ваш код противоречит основам программирования на C#. А вы уже на работу с базами данных замахнулись. читайте книжки.
PS: Надеюсь, не обидел.
1
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
03.11.2014, 16:50 6
Цитата Сообщение от kodv Посмотреть сообщение
все действия с полями класса производятся внутри методов класса. Нельзя использовать поле классе вне метода. В C# поле класса вне метода можно только инициализировать. Но ни как не вызвать для него, допустим, метода Open.
Ваш код противоречит основам программирования на C#. А вы уже на работу с базами данных замахнулись. читайте книжки.
PS: Надеюсь, не обидел.
спс за ответ, нет не обидел, не боги горшки обжигают, все так начинают ну или по крайней мере большинство

Однако, я всё делаю по примеру(ниже), и кстати на всех форумах примерно одно и тоже ...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Data.SQLite;
 
class Program
{
static void Main(string[] args)
{
const string databaseName = @"C:\cyber.db";
SQLiteConnection connection =
new SQLiteConnection(string.Format("Data Source={0};", databaseName));
SQLiteCommand command =
new SQLiteCommand("CREATE TABLE example (id INTEGER PRIMARY KEY, value TEXT);", connection);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
Console.ReadKey(true);
}
}
это как так выходит тогда...
0
1440 / 1113 / 344
Регистрация: 11.04.2011
Сообщений: 2,613
03.11.2014, 17:04 7
tesler, обратите особое внимание на static void Main(string[] args). Это объявление метода Main, внутри которого выполняются все действия. На вашем скриншоте никакого метода не объявлялось, а была попытка открыть соедение с БД из класса напрямую.
Цитата Сообщение от tesler Посмотреть сообщение
все так начинают ну или по крайней мере большинство
Статистикой не владею, но думаю, что большинство либо познают основы языка в ВУЗ'е, после чего уже пишут свой код, либо вместе с IDE скачивают книжку, примеры из которой и являются их первыми программами.
Ладно, будем считать вы просто запутались в примере, и поэтому потеряли объявление метода Main, а не намерено проигнорировали нужную литерутуру перед тем, как приступить к программирвоанию.
1
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
03.11.2014, 17:16 8
Книги не игнорирую. Я не думаю, что на таких форумах только спецы сидят.

И да, спасибо, ошибка более чем ясна
0
6 / 6 / 1
Регистрация: 24.06.2014
Сообщений: 129
07.12.2016, 16:30 9
Вопрос: использую код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Data.SQLite;
 
class Program
{
    static void Main(string[] args)
    {
        const string databaseName = @"C:\cyber.db";
        SQLiteConnection connection = 
            new SQLiteConnection(string.Format("Data Source={0};", databaseName));
        SQLiteCommand command = 
            new SQLiteCommand("CREATE TABLE example (id INTEGER PRIMARY KEY, value TEXT);", connection);
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
        Console.ReadKey(true);
    }
}
Но есть проблема, подключение к БД происходит, однако не считываются имена таблиц и создается пустой файл и именем моей БД.
0
Эксперт .NET
8252 / 5632 / 954
Регистрация: 21.01.2016
Сообщений: 21,492
07.12.2016, 16:45 10
Vadiliy, наверное это потому, что базу нужно создать вручную. Можно сделать это с помощью SqliteBrowser.
1
6 / 6 / 1
Регистрация: 24.06.2014
Сообщений: 129
07.12.2016, 23:18 11
А уже существующую? У меня есть уже готовая БД и мне нужно с ней работать (только чтение), как же мне быть?

Добавлено через 2 часа 26 минут
Проблема решена: просто невнимательность.
0
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 167
08.06.2017, 15:20 12
Пожалуйста,
Добавите пример "Удаление таблицы"
0
1 / 1 / 1
Регистрация: 03.10.2012
Сообщений: 80
14.04.2018, 23:31 13
Цитата Сообщение от AlexLan73 Посмотреть сообщение
Пожалуйста,
Добавите пример "Удаление таблицы"
C#
1
2
3
4
5
6
7
8
9
10
11
string mydatabase1 = @"database1.db";
if (File.Exists(mydatabase1) == true) { }                
else SQLiteConnection.CreateFile(mydatabase1);
 
SQLiteConnection connection = new SQLiteConnection(string.Format("Data Source={0};", mydatabase1));
 
connection.Open();
            SQLiteCommand command5 = new SQLiteCommand("DROP TABLE 'example';", connection);
            command5.ExecuteNonQuery();
MessageBox.Show("Таблица удалена");
connection.Close();
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2018, 23:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подскажите пожалуйста литературку, как работать с BLOB SQLite в Java
Подскажите пожалуйста литературку, как работать с BLOB SQLite в Java

Начать работать с SQLite
Помогите новичку! Пишу консольную программу под Win на С++ Компилирую этим (BAT-файлом): g++.exe...

Можно ли в PascalABCNET работать с sqlite
Добрый вечер! Скажите пжл а можно ли в PascalABCNET работать с sqlite??? И если да где взять...

SQLite for Excel или как выгрузить данные в SQLite
Здравствуйте! Мне необходимо написать макрос для выгрузки данных из excel в sqlite. Нашла проект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.