Я провел целый день в поисках решения этой проблемы.
Похоже, что это ошибка Visual Studio (я использую VS2008Professional и тоже застрял на этом).
Два возможных действия в этом случае:
1) Измените tableAdapter (TA) connectionString вручную непосредственно перед созданием TA (перед фактическим открытием соединения с БД).
// something like this:
if (storageDataSetUtil.DesignerUtil.IsRunTime())
{
// path to database file in my mobile device
this.employeesTableAdapter.Connection.ConnectionString = @"/Program Files/MyApp/data/storage.s3db";
// VS2008-generated code for auto-filling table at runtime:
this.employeesTableAdapter.Fill(this.storageDataSet.employees);
}
2) Использовать оператор '| DataDirectory |' (без кавычек) в connectionString для вашего TA. В конструкторе (схеме) dataSet выберите TA и покажите его свойства. Разверните поле «Соединение» и выберите соединение, которое вы НЕ используете для подключения к базе данных (VS2008 обычно создает такое, когда вы связываете dataSet с элементами управления WinForms. Создайте новое соединение для TA вручную, если нет). Таким образом, connectionString для подключения к базе данных остается без изменений.
Использование | DataDirectory | позволяет вам использовать относительные пути к вашему файлу БД и в большинстве случаев быть независимым от платформы. Что касается меня, это помогает. Надеюсь, это вам тоже поможет.
P.S. Извините за плохой английский)