Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Создание БД SqlServer CE на основе DataSet


Автор: mongoloid 5.6.2011, 14:14
 Други, вот такая проблема: необходимо создать БД SQL Server Compact и заполнить ее посредством DataSet. 

Создать пустую БД не проблема, делаю так: 

.............
        string connString = "Data Source='Test.sdf'; LCID=1033; Password=; Encrypt = FALSE;";
        SqlCeConnection connection = new SqlCeConnection();
.............
        SqlCeEngine engine = new SqlCeEngine(connString);
        engine.CreateDatabase(); // БД создана
.............

 Теперь нужно заполнить БД таблицами и связями. Можно делать так:
.............
            // открываем соединение
            connection.ConnectionString = connString;
            connection.Open();

            SqlCeCommand command = connection.CreateCommand();
            command.CommandText = "CREATE TABLE Empty (IdEmpty int IDENTITY (0,1) PRIMARY KEY)";
            int res = command.ExecuteNonQuery();
            connection.Close();
.............

 А хочется сделать по-другому: создать пустую БД (так как указано выше, например), создать DataSet, заполнить DataSet таблицами и связями между ними и "выгрузить" DataSet целиком (с таблицами, данными и связями в ) в созданную пустую БД. Как это сделать? Замечу, что проблема не в том, чтобы создавать таблицы и связи в DataSet, а именно в корректной "выгрузке" заполненной DataSet в пустую БД. Спасибо.

[вот здесь http://tdlite.ru/csharp/createsqlitedb/ написано, что "это невозможно". Неужели действительно невозможно?]

Автор: jorikdima 7.6.2011, 09:54
Это просто моя наиактуальнейшая проблема! Надеюсь кто-то ответит!
Я пока сделал заполенение БД таблицами вручную. Но так хотелось бы автоматизировать это, имея типизированный DataSet.

Автор: mongoloid 7.6.2011, 10:06
 Есть мнение, что это все-таки "невозможно". "Поправленный" ДатаСет можно выгрузить в БД посредством SqlCeCommand. Но вот таблицы создать таким образом не получается.  Только править уже существующие. Еще мнения будут?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)