Что-то заорал с этого кода:
SQLiteCommand cmd = new SQLiteCommand($"SELECT Name FROM users WHERE Login = '{LoginField.Text}'", load);
SQLiteCommand comand = new SQLiteCommand($"SELECT Surname FROM users WHERE Login = '{LoginField.Text}'", load);
SQLiteCommand command = new SQLiteCommand($"SELECT Image FROM users WHERE Login = '{LoginField.Text}'", load);
SQLiteDataReader Reader = cmd.ExecuteReader();
SQLiteDataReader Readr = comand.ExecuteReader();
SQLiteDataReader reader = command.ExecuteReader();
И у вас не возникло ощущение, что вы что-то делаете не так и люди не пишет Reader,Readr, reader, cmd, command?
В вашем случае нужно писать что-то типа этого:
using System;
using System.Data;
using System.Data.SQLite;
using var connection = new SQLiteConnection("Data source = accounts.db");
connection.Open();
using var cmd = new SQLiteCommand("SELECT Name, Surname, Image FROM users WHERE Login = @Login", connection)
{
// Параметры используются, чтобы защититься от SQL-инъекций
Parameters =
{
new SQLiteParameter("@Login", "test") // то значение, которое должно быть подставлено вместо @Login
}
};
using var reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
var name = reader.GetString("Name");
var surname = reader.GetString("Surname");
var image = reader.IsDBNull("Image")
? null
: Convert.FromBase64String(reader.GetString("Image"));
connection.Close();
// Делаем с name, surname и image что хотим
Ещё я советую использовать async-await, чтобы интерфейс программы не зависал, пока запрос выполняется.