首页 文章

从App.config获取连接字符串

提问于
浏览
333
var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);

这是我的App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

但是当我的项目运行时,这是我的错误:

对象引用未设置为对象的实例 .

18 回答

  • 3

    您可以使用下面的代码行获取连接字符串 -

    using System; using System.Configuration;
    
    var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
    

    这是一个参考:Connection String from App.config

  • 0

    你不能只做以下事情:

    var connection = 
        System.Configuration.ConfigurationManager.
        ConnectionStrings["Test"].ConnectionString;
    

    你的程序集还需要引用 System.Configuration.dll

  • 19

    我通过使用索引来读取字符串并逐个检查来解决了这个问题 . 使用该名称读取仍会出现相同的错误 .
    我在开发C#窗口应用程序时遇到问题,我的asp.net应用程序中没有问题 . 设置中必须有一些不正确的东西 .

  • 6
    //Get Connection from web.config file
    public static OdbcConnection getConnection()
    {
        OdbcConnection con = new OdbcConnection();
        con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
        return con;     
    }
    
  • 1

    你有没有尝试过:

    var connection = new ConnectionFactory().GetConnection(
        ConfigurationManager.ConnectionStrings["Test"]
        .ConnectionString, DataBaseProvider);
    
  • 271
    string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;
    
  • 1

    这对我有用:

    string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
    

    输出:

    数据源= . ;初始目录= OmidPayamak; IntegratedSecurity = True“

  • 26

    似乎问题不是引用,你将connectionstring作为null,所以请确保你已经将值添加到配置文件中你正在运行的项目意味着首先启动/执行的主程序/库 .

  • 419

    试试吧

    string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
    
  • 3
    string str = Properties.Settings.Default.myConnectionString;
    
  • 32

    由于这是一个非常常见的问题,我已经从Visual Studio准备了一些屏幕截图,以便通过4个简单的步骤轻松完成 .

    get connection string from app.config

  • 1

    首先将 System.Configuration 的引用添加到您的页面 .

    using System.Configuration;
    

    然后根据你的 app.config 获取连接字符串如下 .

    string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString();
    

    现在就是你手中的连接字符串,你可以使用它 .

  • 1

    首先,您必须为项目添加 System.Configuration 引用,然后使用下面的代码来获取连接字符串 .

    _connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString();
    
  • 11

    我遇到过同样的问题 . 我的解决方案是由两个项目构建的 . Class library 和引用类库项目的网站 . 问题是我试图访问我的 Class library 项目中的 App.config ,但系统正在搜索网站的 Web.config . 我把连接字符串放在 Web.config 里面......问题解决了!

    主要原因是尽管 ConfigurationManager 用于另一个程序集,但它正在runnig项目中搜索 .

  • 1

    此问题中的OP可能正在尝试在dll中使用App.Config .

    在这种情况下,代码实际上是尝试访问可执行文件的App.Config而不是dll . 由于找不到名称,因此返回Null,因此显示异常 .

    以下文章可能会对您有所帮助:ConnectionString from app.config of a DLL is null

  • 3

    1)创建一个新表单并添加:

    Imports System.Configuration
    Imports Operaciones.My.MySettings
    
    Public NotInheritable Class frmconexion
    
        Private Shared _cnx As String
        Public Shared Property ConexionMySQL() As String
            Get
                Return My.MySettings.Default.conexionbd
            End Get
            Private Set(ByVal value As String)
                _cnx = value
            End Set
        End Property
    
    End Class
    

    那么当你想使用连接时,请以ur形式执行此操作:

    Private Sub frmInsert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    Dim cn As New MySqlConnection(frmconexion.ConexionMySQL)
    cn.open()
    

    就是这样 . 您将连接到数据库并可以执行操作 .

    这是针对vb.net的,但逻辑是一样的 .

  • 2

    我引用了 System.Configuration 库,我也有同样的错误 . 调试文件没有他们的app.config,手动创建这个文件 . 错误是,我解决了这个复制调试文件夹中的文件"appname.exe.config" . IDE未创建该文件 .

  • 0

    另请检查您的参考文献中是否包含 System.Configuration dll . 没有它,您将无法访问System.Configuration命名空间中的 ConfigurationManager 类 .

相关问题