TableAdapter向导在选项列表中没有来自设置的连接字符串。

7

C# VS 2010 .net v4.0

我在项目(类库)中添加了一个 DataSet,但是当我尝试添加 TableAdapter 时,我添加到设置中的连接字符串无法选择。我可以使用其他数据源(从服务器资源管理器中)的连接字符串。 我不能使用绕过方法,我需要从设置中获取连接字符串。 我在许多其他项目中都这样做,通常都能成功,但有时我只能随机尝试,直到最终看到我的连接字符串。我希望升级到 vs2010 可以解决这个问题。 希望有人看到并能提供帮助,谢谢。


更多信息:我在另一个项目中创建了数据集,该项目正在运行,然后将其复制到我的问题项目中。一切都可以编译,但是当我尝试在tableadapter中预览数据时,我会收到以下错误消息:“无法找到对象'Settings'的连接'conn name here'。应用程序设置中找不到连接字符串,或者与连接字符串关联的数据提供程序无法加载。” - Crowcoder
更多信息:如果我进入某个代码文件并键入“Properties.Settings.Default.”,我确实可以在智能感知中找到我的连接字符串。那么为什么数据集找不到它呢? - Crowcoder
4个回答

2
OP是否解决了这个问题?
我最近在Visual Studio 2015(VS2015)和Visual Studio 2017(VS2017)中遇到了完全相同的问题。在以前的项目中,当添加DataSet并配置TableAdapter时,向导会显示在项目设置中配置的ConnectionStrings(存储在app.config中)。向导页面将显示来自设置的字符串名称,以及单词(Settings)表示它来自哪里,如下所示:

enter image description here

然而,在最近的一个项目中,它没有显示来自项目设置的 ConnectionStrings。
事实证明,在我的情况下,我复制了一个之前类似的项目作为启动新项目的外壳。这包括 app.config。我手动编辑了一堆文件以反映新项目所需的内容,包括连接字符串,无意中删除了一个至关重要的值,即 providerName。
在 app.config 中,在 ConnectionStrings 部分中,每个字符串都需要指定 name、ConnectionString 和 providerName。我无意中删除了 providerName 值。以下是 app.config 中正确设置的示例。
<connectionStrings>
    <add name="MembershipCRM.Properties.Settings.app_ogca_CRMConnectionString"
        connectionString="Data Source=MYSERVERNAME\SQL2014;Initial Catalog=app_ogca_CRM;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    <add name="MembershipCRM.Properties.Settings.app_ogca_QBIConnectionString"
        connectionString="Data Source=MYSERVERNAME\SQL2014;Initial Catalog=app_ogca_QB;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>

没有提供 providerName 值,表明 ConnectionString 指向哪种数据源,TableAdapter 配置向导会认为它无效并忽略它。一旦我重新添加了 providerName="System.Data.SqlClient" 值,向导立即识别出它。

2

你检查过项目和数据集设计器类的命名空间了吗?确保两者相同...


1

我也遇到了相同的问题,使用vb.net、.net 3.5和sql 2008。我解决这个问题的方法是前往事件查看器并清空应用程序日志。我的应用程序日志已满。一旦我清空了日志,我就可以添加和查看数据连接。


1
我遇到了同样的问题。我通过在csproj文件中删除对System.dll的旧引用来解决了我的问题。截图

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接