在C#的from编程中,想实现通过配置实现连接不同数据库,具体如下
在app.confi中有如下代码, 现在默认的链接数据库时access数据库
<connectionStrings>
    <add name="gLocalSqlServer" connectionString="Server=localhost\\SQLExpress;Integrated Security=SSPI;database=RIMS" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <Att>
    <attProvider defaultProvider="AccessAttProvider">
      <providers>
        <add name="AccessAttProvider" type="RAS.Providers.AccessAttProvider,RAS"/>
        <add name="SqlAttProvider" connectionStringName="gLocalSqlServer" type="RAS.Providers.SqlAttProvider,RAS"/>
      </providers>
    </attProvider>
  </Att>
请问如何在程序中动态修改<attProvider defaultProvider="AccessAttProvider">的值为<attProvider defaultProvider="AccessAttProvider">使默认连接数据库为SQL希望高手指点一下,谢谢

解决方案 »

  1.   

    参考我的代码
    xmldoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");public string ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["DBSetting"].ToString();
            public OracleConnection Conn;
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <!--数据库连接信息,Data Source = 数据库名;user id = 用户名;password = 密码-->
      <connectionStrings>
        <add name="DBSetting" connectionString="Data Source = orcl;user id = sde;password = sde" providerName="System.Data.OracleClient" />
      </connectionStrings>
    </configuration>
      

  2.   

    把不加密的连接字符串写到App.Config中?那你请着数据被人随便修改吧。我一般把加密的连接串写到注册表中。也到配置文件中也不是不行,但必须加密
      

  3.   

    楼上的,我参考代码只看到你获取到值,没有修改config的值啊,比如如何修改你的password的值为123呢
    谢谢
      

  4.   

    具体没做过,可以读取config文件,然后遍历子节点,修改password值
      

  5.   

    1.先获取配置文件。
    2.遍历子节点进行修改要更改的节点属性值。
    如:private   void   XmlUpdate(string   sfilename,string   sfilesize,string   sauthor,string   suploadate,string   spath) 

    //将文件信息更新UploadFileList.xml 
    XmlDocument   xmlDoc=new   XmlDocument(); 
    xmlDoc.Load(Request.PhysicalApplicationPath+@ "photo\ "+ "UploadFileList.xml ");   XmlNodeList   nodeList=xmlDoc.SelectSingleNode( "filelist ").ChildNodes; foreach(XmlNode   xn   in   nodeList)//遍历所有子节点 

    XmlElement   xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 
    if(xe.GetAttribute( "filename ")==sfilename)//如果filename属性值匹配 
    { XmlNodeList   nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 
    foreach(XmlNode   xn1   in   nls)//遍历 

    XmlElement   xe2=(XmlElement)xn1;//转换类型 
    if(xe2.Name== "filesize ")//如果找到 

    xe2.InnerText=sfilesize;//则修改 } if(xe2.Name== "author ")//如果找到 

    xe2.InnerText=sauthor;//则修改 } if(xe2.Name== "uploadate ")//如果找到 

    xe2.InnerText=suploadate;//则修改 } if(xe2.Name== "filepath ")//如果找到 

    xe2.InnerText=spath;//则修改 } 

    break; 

    } xmlDoc.Save(Request.PhysicalApplicationPath+@ "photo\ "+ "UploadFileList.xml ");//保存   }