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 回答
您可以使用下面的代码行获取连接字符串 -
这是一个参考:Connection String from App.config
你不能只做以下事情:
你的程序集还需要引用
System.Configuration.dll
我通过使用索引来读取字符串并逐个检查来解决了这个问题 . 使用该名称读取仍会出现相同的错误 .
我在开发C#窗口应用程序时遇到问题,我的asp.net应用程序中没有问题 . 设置中必须有一些不正确的东西 .
你有没有尝试过:
这对我有用:
输出:
似乎问题不是引用,你将connectionstring作为null,所以请确保你已经将值添加到配置文件中你正在运行的项目意味着首先启动/执行的主程序/库 .
试试吧
由于这是一个非常常见的问题,我已经从Visual Studio准备了一些屏幕截图,以便通过4个简单的步骤轻松完成 .
首先将
System.Configuration
的引用添加到您的页面 .然后根据你的 app.config 获取连接字符串如下 .
现在就是你手中的连接字符串,你可以使用它 .
首先,您必须为项目添加
System.Configuration
引用,然后使用下面的代码来获取连接字符串 .我遇到过同样的问题 . 我的解决方案是由两个项目构建的 .
Class library
和引用类库项目的网站 . 问题是我试图访问我的Class library
项目中的App.config
,但系统正在搜索网站的Web.config
. 我把连接字符串放在Web.config
里面......问题解决了!主要原因是尽管
ConfigurationManager
用于另一个程序集,但它正在runnig项目中搜索 .此问题中的OP可能正在尝试在dll中使用App.Config .
在这种情况下,代码实际上是尝试访问可执行文件的App.Config而不是dll . 由于找不到名称,因此返回Null,因此显示异常 .
以下文章可能会对您有所帮助:ConnectionString from app.config of a DLL is null
1)创建一个新表单并添加:
那么当你想使用连接时,请以ur形式执行此操作:
就是这样 . 您将连接到数据库并可以执行操作 .
这是针对vb.net的,但逻辑是一样的 .
我引用了
System.Configuration
库,我也有同样的错误 . 调试文件没有他们的app.config,手动创建这个文件 . 错误是,我解决了这个复制调试文件夹中的文件"appname.exe.config" . IDE未创建该文件 .另请检查您的参考文献中是否包含
System.Configuration
dll . 没有它,您将无法访问System.Configuration命名空间中的ConfigurationManager
类 .