Data Source cannot be empty. Use :memory: to open an in-memory database

169
24 января 2021, 19:10

Я создаю программу на C# с подключенной базой данных на SQLite. При отладке выскакивает вот такая ошибка: исключение не обработано. "Data Source cannot be empty. Use :memory: to open an in-memory database".

Ниже скрин из отладчика:

Здесь мой код.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
namespace Diplom_BM
{
    public partial class Form1 : Form
    {
        private SQLiteConnection DB;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DB = new SQLiteConnection("Data Source=F:\\Maxim\\1.db; Pooling=true; FailIfMissing=false; Version=3");
            DB.Open();
        }
        public string admins;
        Autentification auth;
        private void btnEnter_Click(object sender, EventArgs e)
        {
            if (txtLogin.Text != string.Empty
                  && txtPassword.Text != string.Empty)
            {
                checkAccount(txtLogin.Text, txtPassword.Text);
            }
        }
        private void checkAccount(string login, string password)
        {
            auth = new Autentification();
            auth.getConnection();
            using (SQLiteConnection con = new SQLiteConnection(auth.connectionString))
            {
                con.Open();   //Здесь программа вылетает
                SQLiteCommand cmd = new SQLiteCommand();
                string query = @"SELECT FROM Admins WHERE Login='" + login + "'";
                int count = 0;
                cmd.CommandText = query;
                cmd.Connection = con;
                SQLiteDataReader read = cmd.ExecuteReader();
                while (read.Read())
                {
                    count++;
                }
                if (count == 1)
                {
                    MessageBox.Show("Вы успешно вошли в систему.", "Вход произведен.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    admins = login;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Неверное имя пользователя или пароль.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
        }
Answer 1

попробуйте

DB = new SQLiteConnection(@"Data Source=F:\Maxim\1.db; Pooling=true; FailIfMissing=false; Version=3");

Ошибка связана с подключением к базе.

READ ALSO
Запись данных из бд MySql в label Unknown Column

Запись данных из бд MySql в label Unknown Column

Не могу понять почему при открытии программы выдает ошибку Unknown Column 'Логин' in where clause"

114
StreamWriter стирает файл

StreamWriter стирает файл

Нужно создать метод, который будет заменять строку просто вписав начало этой строкиОно это выполняет, но программа после замены, когда записывает...

125
Удаление и обнуление EF Core

Удаление и обнуление EF Core

Не понимаю в чем проблема

141
управление свайпом для игры Unity Runner [дубликат]

управление свайпом для игры Unity Runner [дубликат]

Я делаю руннер игру на Android с использованием C # и УнитиЯ пытаюсь сделать управление с свайпом, но код не работает должным образом

118