none
数据库访问问题 RRS feed

  • 问题

  •             string sAccessConnection = ConfigurationManager.AppSettings["connectionString"];

                OleDbConnection odcConnection = new OleDbConnection(sAccessConnection);

                odcConnection.Open();

    connectionString 属性尚未初始化。什么意思啊

    2009年5月25日 5:20

答案

  • string sAccessConnection = ConfigurationManager.ConnectionStrings["WindowsApplication5.Properties.Settings.ConnectionString"].ConnectionString;
    再把你的连接字符串改一下

    知识改变命运,奋斗成就人生!
    2009年5月25日 6:32
    版主
  • 你好!
         如果你的配置文件是这样:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="WindowsApplication5.Properties.Settings.ConnectionString"
                connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456"
                providerName="System.Data.OleDb" />
        </connectionStrings>
    </configuration>
    读取的时候可以这样写:
    string
     sAccessConnection = ConfigurationManager.ConnectionStrings["
    WindowsApplication5.Properties.Settings.ConnectionString"
    ].ConnectionString;
    你配置文件里的add节点的name设置为什么值,读取的时候中括号里就写什么值!

    周雪峰
    2009年5月25日 6:43
    版主

全部回复

  • 你在Web.config 没有配置名为 connectionString 的数据连接吧,需要在 Web.config 中添加
    <appSettings>
        <add key="connectionString" value="你的连接字符串"/>
    </appSettings>




    知识改变命运,奋斗成就人生!
    2009年5月25日 5:31
    版主
  •  <add name="WindowsApplication5.Properties.Settings.ConnectionString"
                connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456"
                providerName="System.Data.OleDb" />

    这种形势不行吗?
    2009年5月25日 5:38
  • 如果 Web.config 是这样的 
    	<connectionStrings>
    		<add name="ConnectionString1" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456" providerName="System.Data.OleDb"/>
    	</connectionStrings>
    
    你获取的时候需要改为
    string sAccessConnection = ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString;
    
    注意, Key值要一样哦,要不然获取不到(就是ConnectionString1)


    知识改变命运,奋斗成就人生!
    2009年5月25日 5:42
    版主
  • 还是不行,提示没有Value定义
    2009年5月25日 5:54
  • string sAccessConnection = ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString;
    不好意思第一次打错了

    知识改变命运,奋斗成就人生!
    2009年5月25日 5:56
    版主
  • 未将对象引用设置到对象的实例。
    现在提示这个了
    2009年5月25日 6:13
  • 确定你 
    ConfigurationManager.ConnectionStrings["ConnectionString1"] 和 webconfig 中 <add name="ConnectionString1"
    使用用的Name 值是一样的

    知识改变命运,奋斗成就人生!
    2009年5月25日 6:24
    版主
  • 另外你的连接字符串可能有问题,改为下面的试试
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;User Id=xxx; Password=123456

    知识改变命运,奋斗成就人生!
    2009年5月25日 6:29
    版主
  • <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="WindowsApplication5.Properties.Settings.ConnectionString"
                connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456"
                providerName="System.Data.OleDb" />
        </connectionStrings>
    </configuration>

    调用应该怎么写啊?上面是配置文件内容
    2009年5月25日 6:30
  • string sAccessConnection = ConfigurationManager.ConnectionStrings["WindowsApplication5.Properties.Settings.ConnectionString"].ConnectionString;
    再把你的连接字符串改一下

    知识改变命运,奋斗成就人生!
    2009年5月25日 6:32
    版主
  • 你好!
         如果你的配置文件是这样:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="WindowsApplication5.Properties.Settings.ConnectionString"
                connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data\data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456"
                providerName="System.Data.OleDb" />
        </connectionStrings>
    </configuration>
    读取的时候可以这样写:
    string
     sAccessConnection = ConfigurationManager.ConnectionStrings["
    WindowsApplication5.Properties.Settings.ConnectionString"
    ].ConnectionString;
    你配置文件里的add节点的name设置为什么值,读取的时候中括号里就写什么值!

    周雪峰
    2009年5月25日 6:43
    版主
  • 像配置节里的名称什么的,你可以不用手写,直接把name后的那个值完完整整地copy到代码里,以免去敲代码可能出现的错误。


    做最好的自己
    2009年5月25日 6:52
  • 谢谢!解决了,祝端午节快乐!

    2009年5月25日 6:52
  • 谢谢!解决了,祝端午节快乐!

    2009年5月25日 6:53
  • 同乐~~
    知识改变命运,奋斗成就人生!
    2009年5月25日 6:54
    版主
  • 大家端午快乐啊!
    周雪峰
    2009年5月25日 8:03
    版主