Dies ist meine Synchronisation mit der Datenbankfunktion. Ich weiß wirklich nicht, wie ich den Projektpath zur Laufzeit und nicht zur ausführbaren Ausführbaren übertragen kann, sondern wo die Datei in der Projektlösung gespeichert ist. < /P>
Code: Select all
public static void syncDB()
{
using NpgsqlConnection connection = new NpgsqlConnection(connectionString);
connection.Open();
string fileName = "Scripts.sql";
var baseDirectoryPath = AppContext.BaseDirectory;
string projectPath = Directory.GetParent(AppContext.BaseDirectory).Parent.FullName;
string filePath = Path.Combine(projectPath, @"App1\SQL Scripts\Scripts.sql", "Scripts.sql");
string sqlScript = File.ReadAllText(filePath);
string[] createTableQueries = sqlScript.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var query in createTableQueries)
{
string tableName = GetTableNameFromQuery(query);
if (!DoesTableExist(connection, tableName))
{
// Execute the CREATE TABLE query
using (var command = new NpgsqlCommand(query, connection))
{
command.ExecuteNonQuery();
Console.WriteLine($"Table '{tableName}' created successfully.");
}
}
else
{
Console.WriteLine($"Table '{tableName}' already exists.");
}
}
}