Um die Verbindung zu einer SQLite-Datenbank herzustellen können Sie normalerweise direkt den SQLiteConnectionDataProvider
verwenden. Wenn in der Datenbank allerdings keine Relationen vorhanden sind und Sie diese nachträglich hinzufügen möchten, müssen Sie anders vorgehen:
Verwenden Sie stattdessen eine Instanz des DbCommandSetDataProvider
. Sie können die Tabellen und Relationen dann wie folgt hinzufügen:
using (ListLabel LL = new ListLabel())
{
// use reflection to make sure to create the "right" SQLiteConnection (i.e. the one used internally)
Type type = DataProviderHelper.GetSQLiteConnectionType();
IDbConnection conn = Activator.CreateInstance(type, @"data source=c:\temp\BoxBuddy.db") as IDbConnection;
// create generic DbCommand host provider
DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
// add first table
var cmd1 = conn.CreateCommand();
cmd1.CommandText = "SELECT * from TableA";
provider.AddCommand(cmd1, "TableA", "\"{0}\"", "@{0}");
// add Box table
var cmd2 = conn.CreateCommand();
cmd2.CommandText = "SELECT * from TableB";
provider.AddCommand(cmd2, "TableB", "\"{0}\"", "@{0}");
// manually add relation
provider.AddRelation("TableAtoTableB", "TableA", "TableB", "ID", "FK_ID");
// assign data source
LL.DataSource = provider;
// call the designer
LL.Design();
}