【问题标题】:Can't set or get connectionString in c# [duplicate]无法在c#中设置或获取connectionString [重复]
【发布时间】:2016-07-01 17:14:17
【问题描述】:

如何从下面的配置中获取连接字符串?我研究了谷歌和stackoverflow,但无法获得连接字符串。虽然我包含了System.Configuration,但我也没有找到配置管理器类。

app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections></configSections>
    <connectionStrings>
        <add name="std_8_science.Properties.Settings.science8ConnectionString"
             connectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=F:\science_8.mdb"
             providerName=".NET Framework Data Provider for OLE DB"/>
    </connectionStrings>
</configuration>

【问题讨论】:

  • 您必须实际添加对 System.Configuration 的项目引用才能访问 ConfigurationManager 类。
  • 我使用该参考,但找不到 ConfigurationManager 类。那么如何获取connectionString呢?

标签: c#


【解决方案1】:

从 cmets 我看到您正在尝试将连接字符串作为设置读取,但事实并非如此。

添加对System.Configuration 的项目引用。然后获取字符串:

var connectionString = ConfigurationManager.ConnectionStrings["std_8_science.Properties.Settings.science8ConnectionString"].ConnectionString;

考虑为您的连接字符串使用更短的名称。毕竟不是设定……

【讨论】:

【解决方案2】:

你的字符串有点不对劲。下面的 connectino 字符串应该让您恢复并运行

<add name="" connectionString="Data Source=.\SQLEXPRESS;Database=;Initial Catalog=;integrated security=True;" providerName="System.Data.SqlClient"/>

然后,只需将 providerName 设置为 Microsoft.Jet.OLEDB.4.0

而且,很明显,设置Database and Initial Catalog

一个非常好的资源是ConnectionStrings.com

【讨论】:

  • 我试过了,但还不行
  • 是否有异常被抛出?你能显示你设置的新连接字符串吗?
  • 错误:“std_8_science.Properties.Settings”不包含“science8ConnectionString”的定义,并且没有扩展方法“science8ConnectionString”接受“std_8_science.Properties.Settings”类型的第一个参数(您是否缺少 using 指令或程序集引用?)
  • 如果我像 conString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\science_8.mdb" 那样静态写入每个页面;比它有效。但我希望它只在 app.config 中编写一次。
猜你喜欢
  • 2012-01-31
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多