2016-07-21 1 views
1

Когда я пытаюсь использовать DataConnectionDialog из NuGet (версия 1.2), я получаю диалоговое окно «Дополнительные параметры» для настройки подключения к базе данных. Есть ли какая-то настройка, которую я пропустил, или дополнительную библиотеку, чтобы вернуться?Использование DataConnectionDialog

Код:

using System; 
using Microsoft.Data.ConnectionUI; 

DataConnectionDialog dcd = new DataConnectionDialog(); 
DataSource.AddStandardDataSources(dcd); 
dcd.SelectedDataSource = DataSource.SqlDataSource; 
dcd.SelectedDataProvider = DataProvider.SqlDataProvider; 
DataConnectionDialog.Show(dcd); 

Выход:

enter image description here

То, что я хочу (это происходит от мастера источника данных в Visual Studio Сообществе 2015):

enter image description here

+0

У меня есть аналогичный код, и я получаю второе диалоговое окно, как ожидалось. Возможно, другие настройки, которые вы настроили или закодированный код, повлияли на это поведение? –

ответ

1

Мне довелось споткнуться по тому же вопросу. Из моей основной формы я назвал метод async, используя Task.Factory.StartNew. Этот метод пытается открыть диалоговое окно «Подключение к данным», но вместо этого отобразится диалоговое окно «Предварительные настройки».

Во время поиска неисправностей я заменил DataConnectionDialog на OpenFileDialog, и это дало мне ThreadStateException, который указал мне на решение.

Чтобы решить эту проблему, мне пришлось поместить код в отдельную функцию, например. AskConnectionString и назовите его, используя Control.Invoke.

например.

public void btnConnString_Click(object sender, EventArgs e) 
{ 
    _connectionString = (string)this.Invoke(AskConnectionString); 
} 

public string AskConnectionString() 
{ 
    DataConnectionDialog dcd = new DataConnectionDialog(); 
    DataSource.AddStandardDataSources(dcd); 
    dcd.SelectedDataSource = DataSource.SqlDataSource; 
    dcd.SelectedDataProvider = DataProvider.SqlDataProvider; 
    DataConnectionDialog.Show(dcd); 

    return dcd.ConnectionString; 
}