@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();
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@rPman
Заверни проблемный блок в try {} catch() {} и выводи ошибку, все ответы получишь
p.s. путь до файла перепроверяй
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы