я пробовал запросом insert вставить данные к таблицам через абсолютный путь к БД и все работает, а вот через относительный не выходит, сделал автоопределение каталога тип где он находится через Path.Combine но все равно не вышло. Вот мой код:
public class ElGamalParametersExporter
{
private string connectionString;
public ElGamalParametersExporter(string dbFileName)
{
string relativePathToDB = Path.Combine("database", dbFileName);
string absolutePathToDB = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, relativePathToDB);
connectionString = $"Data Source={absolutePathToDB}";
}
public void ExportParameters(BigInteger p, BigInteger g, BigInteger x, BigInteger y)
{
try
{
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
// Вставляем параметры p и g в таблицу ElGamalParameters
using (var command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO ElGamalParameters (P, G) VALUES (@p, @g)";
command.Parameters.AddWithValue("@p", p.ToString());
command.Parameters.AddWithValue("@g", g.ToString());
command.ExecuteNonQuery();
}
// Вставляем открытый ключ y в таблицу ElGamalPublicKey
using (var command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO ElGamalPublicKey (PublicKey) VALUES (@y)";
command.Parameters.AddWithValue("@y", y.ToString());
command.ExecuteNonQuery();
}
// Вставляем закрытый ключ x в таблицу ElGamalPrivateKey
using (var command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO ElGamalPrivateKey (PrivateKey) VALUES (@x)";
command.Parameters.AddWithValue("@x", x.ToString());
command.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
MetroFramework.MetroMessageBox.Show(null,"Ошибка при экспорте параметров и ключей в базу данных: " + ex.Message,);
}
и ее реализация в кнопке
private void Gen_param_Click(object sender, EventArgs e)
{
// Генерация ключей ElGamal
Tuple<ElGamalParameters, BigInteger, BigInteger> keys = ElGamalKeyGenerator.GenerateElGamalKeys();
// Получение параметров и ключей
BigInteger p = keys.Item1.P;
BigInteger g = keys.Item1.G;
BigInteger x = keys.Item2;
BigInteger y = keys.Item3;
// Вывод значений в MetroTextBox элементы
textBoxP.Text = p.ToString();
textBoxG.Text = g.ToString();
textBoxPrivateKey.Text = x.ToString();
textBoxPublicKey.Text = y.ToString();
string absolutePathToDB = @".\database\Keys.db";
ElGamalParametersExporter exporter = new ElGamalParametersExporter(absolutePathToDB);
exporter.ExportParameters(p, g, x, y);
}
Вот полный путь к БД: D:\Учеба\ИТИ магис\2 курс 2 сем\Диссертация\проект\Programs\EL_Gamal\EL_Gamal\database\Keys.db и поставил свойство копировать в выходной каталог с 0 на 1 Подскажите как задать относительный путь чтоб работал запрос Insert, если на абсолютном он работает нормально.