1

Я успешно синхронизирован как источник и локальная БД с помощью пункта кэша локальной базы данных в VS 2008.ADO.Net Синхронизация и SQL CE

Однако, мне нужно, чтобы получить доступ к SQL CE DB непосредственно из другой DLL/процесса и без использования набора данных. Причина в том, что мой код бизнес-объекта не использует наборы данных.

Окончательный код wouldlook что-то вроде этого:

Dim conn As New SqlServerCe.SqlCeConnection("Data Source=C:\Development\UserDirectory\UserDirectory.DBSyncher\ProfDir.sdf;Persist Security Info=False;") 
Dim cmd As New SqlServerCe.SqlCeCommand("Select EmailAddress from Employees Where ID=23", conn) 
Dim returnString As String = "" 

If conn.State = ConnectionState.Closed Then 
    conn.Open() 
End If 
returnString = cmd.ExecuteScalar 

conn.Close() 
cmd = Nothing 

я замечаю что-то очень странное, используя набор данных, синхронизированные изменения показаны, но доступ к файлу базы данных CE непосредственно возвращает старые данные - не синхронизируются данные вообще.

Что мне не хватает? Любая помощь будет принята с благодарностью.

+0

добавьте тег 'sqlservercompactedition' для лучшего поиска –

ответ

1

Понял это!

Забыл, что CE находится в процессе, поэтому он копирует файл базы данных (.sdf) в папку Debug. Вы должны ссылаться на эту базу данных, а не та, что в вашем проекте. DOH!

Смежные вопросы