关于ConfigurationManager.ConnectionStrings的问题,把我憋死了

问题描述

本人一网站,在Web.Config中,如下配置数据库连接字符串<connectionStrings><addname="DatebaseConnection"connectionString="server=.;database=XXX;uid=XXX;pwd=XXX"/></connectionStrings>再在自定义数据库连接类中如下调用:SqlConnectionMyConnection=newSqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString);总是报如下错误:未将对象引用设置到对象的实例。而如果在Web.Config中,如下配置数据库连接字符串<appSettings><addkey="DatabaseConnection"value="server=.;database=XXX;uid=XXX;pwd=XXX"/></appSettings>再在自定义数据库连接类中如下调用:SqlConnectionMyConnection=newSqlConnection(ConfigurationManager.AppSettings["DatabaseConnection"]);则没有错误请问:1、将数据库连接字符串配置在<appSettings></appSettings>和<connectionStrings></connectionStrings>有什么区别2、这两种调用方法有什么异同ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString和ConfigurationManager.AppSettings["DatabaseConnection"],好像MSDN讲后一种配置过时了

解决方案

解决方案二:
ConfigurationManager.ConnectionStrings["DatabaseConnection"].ToString();
解决方案三:
AppSettings过时了.建议连接放在connectionStrings里.你的代码应该没有问题.你仔细看一下,调试一下呢.web.config位置对不对啊.
解决方案四:
connectionStrings元素为ASP.NET应用程序和ASP.NET功能指定数据库连接字符串(名称/值对的形式)的集合。在以前的ASP.NET版本中,连接字符串存储在appSettings中。在ASP.NET2.0中,如会话、成员资格、个性化设置和角色管理器等功能均依赖于存储在connectionStrings元素中的连接字符串。您还可以使用connectionStrings元素来存储您自己的应用程序的连接字符串。可以比较一下:<connectionStrings><addname="MyFirstS2005"connectionString="DataSource=GODISME;InitialCatalog=MyFirstSQL2005;UserID=sa;Password=sa"providerName="System.Data.SqlClient"/></connectionStrings><appSettings><addkey="GlobalConnection"value="Server=localhost;uid=sa;pwd=sa;database=Northwind"/></appSettings>
解决方案五:
啥问题?应该好了吧
解决方案六:
把项目生成下试试~以前也碰到过类似的问题
解决方案七:
引用1楼xs8577的回复:

ConfigurationManager.ConnectionStrings["DatabaseConnection"].ToString();

这个ToString()没用,试过了,ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString本身返回的就是一个字符串
解决方案八:
引用2楼greystar的回复:

AppSettings过时了.建议连接放在connectionStrings里.你的代码应该没有问题.你仔细看一下,调试一下呢.web.config位置对不对啊.

这个不是调试问题,而是对象应用之前没有实例化,我就是不明白到底是MyConnection没有实例化,还是ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString中的某个在用之前要实例化兄弟另一问题:请各位大虾也帮忙看看
解决方案九:
引用5楼genghuilove的回复:

把项目生成下试试~以前也碰到过类似的问题

你是怎么解决的,难道生成一下就可以了吗。我这个不是项目,是ASP.NET网站
解决方案十:
代码看上去没啥问题
解决方案十一:
这么多高手,怎么这个问题没有解答呢
解决方案十二:
楼主的代码应该没有问题啊!你在仔细看看其他的地方啊?
解决方案十三:
stringsettings=Convert.Tostring(ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString);SqlConnectionMyConnection=newSqlConnection(settings);这样就可以解决了

解决方案十四:
我那里也出现了同样的情况啊晕,以前的几个网站项目的是这样配置的,都是没问题的哦,不过这次就不行了
解决方案十五:
看看,学习。。
解决方案:
引用11楼ljqingas的回复:

楼主的代码应该没有问题啊!你在仔细看看其他的地方啊?

这个返回本来就是String类型不用转型
解决方案:
学习了,帮顶下
解决方案:
ConnectionStringSettingsCollectionConnectionStrings=ConfigurationManager.ConnectionStrings;stringConnectionString0=ConnectionStrings["DatabaseConnection"].ConnectionString;stringConnectionString1=ConnectionStrings[0].ConnectionString;"{datasource=.SQLEXPRESS;IntegratedSecurity=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;UserInstance=true}"分步骤执行下你的语句,如果是第2句报“未将对象引用设置到对象的实例”,而第3句输出类似上面面文字的字符串,就说明是你的App.config文件有问题。如:没有包括在应用程序的工程中,或打不开,或语法有问题。这时,ConnectionStrings[0].ConnectionString输出的是machine.config里已经默认定义的一个数据库连接。我遇到你的问题的时候,是App.config只包括在了类库的工程中。转到应用的工程中就正常了。
解决方案:
han
解决方案:
代码没问题
解决方案:
代码没看出什么问题
解决方案:
晕,这是2008年的帖子...
解决方案:
这个问题搞了我一下午了,现在终于搞定,不管楼主是什么时候发的,现将本人解决方法贴出来,以供新手学习:就是APP.CONFIG文件只是在你的类库里,把它放在应用的项目里,就是带FORM或网站项目里即可.
解决方案:
我也出现过此问题,我把配置文件删掉了,然后新添加了一个,不过这次不用Wed.config这个名字了,而用的是App.Config,也就是新建时默认的名字,添加完毕之后,我生成完毕执行了一下,就可以了,接着,我把这个文件又给删掉了,把里面的内容复制了一下,重新添加了一次,名字用的是Wed.config这个名字,内容是刚才App.Config中的内容,结果就提示未将对象引用设置到对象的实例。
解决方案:
ConfigurationManager.ConnectionStrings["DatabaseConnection"].ToString();
解决方案:
08年的帖子,我晕。
解决方案:
学习了……!!!

时间: 2016-09-06