@a63826ndrew
Студент, новичок в Python

Как подключиться к SQLite в C#?

Здравствуйте!
Имеется сервер на языке C# и база банных SQLite, к которой нужно выполнить подключение и передать SQL - запрос, только при попытке это реализовать сервер сразу же выключается, и отсюда выходит два вопроса:
1. Почему же собственно происходит выключение?
2. Как все-таки подключиться к бд, чтобы не было подобных инцедентов? Покопавшись в настройках программы (DB Browser for SQLite) я наткнулся на это:
601eb5f4aec4d273940017.png
Может быть именно здесь все и можно сделать?
Вот код сервера:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using Microsoft.Data.Sqlite;

namespace Server
{
    class Program
    {
        const int port = 8888;
        private static SqliteConnection conn;
        static void Main(string[] args)
        {
            TcpListener server = null;
            try
            {
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
                server = new TcpListener(localAddr, port);

                // запуск слушателя
                server.Start();
                conn = new SqliteConnection("Data source = accounts.db");
                while (true)
                {
                    Console.WriteLine("Ожидание подключений... ");
                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Клиент подключился к серверу.");

                    while (client.Connected)
                    {
                        NetworkStream stream = client.GetStream();
                        byte[] cmd = new byte[256];
                        StringBuilder builder = new StringBuilder();
                        int bytes = 0;
                        do
                        {
                            bytes = stream.Read(cmd, 0, cmd.Length);
                            builder.Append(Encoding.UTF8.GetString(cmd, 0, bytes));
                        }
                        while (stream.DataAvailable);

                        string message = builder.ToString();
                        Console.WriteLine(message);
                        conn.Open();
                        SqliteCommand comd = new SqliteCommand(message, conn);
                        SqliteDataReader read = comd.ExecuteReader();
                        comd.ExecuteNonQuery();
                        stream.Close();
                    }
                    client.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Сервер останавливается при выполнении этих команд:
conn.Open();
SqliteCommand comd = new SqliteCommand(message, conn);
SqliteDataReader read = comd.ExecuteReader();
comd.ExecuteNonQuery();
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@rPman
Заверни проблемный блок в try {} catch() {} и выводи ошибку, все ответы получишь
p.s. путь до файла перепроверяй
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 июн. 2024, в 08:27
1000 руб./за проект
04 июн. 2024, в 07:29
700 руб./за проект