咨询内容:
C#环境   WinForm下如何根据一个XML配置文件来连接数据库。现有config.xml文件如下:<DataBaseConfig>
 <DBConnectionsInfoConfig>
   <DataBaseDetail id="1" type="System.Data.SqlClient.SqlConnection" conn_string="server=localhost;uid=sa;pwd=;database=Northwind;enlist=true"/>
 </DBConnectionsInfoConfig>
</DataBaseConfig>==========================
我写了一个简单程序,用于存储XML文件中用于存储连接数据库字符串节点元素。但是接下来怎样连接数据库呢?google了很久还是没有得到理想的答案,故在此请教大家了,我写的的C#程序如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;namespace conn
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
        }        private void button1_Click(object sender, EventArgs e)
        {
            string[] ConnectionString = new string[100];
            ReadConfig("C:\\Config.xml", ConnectionString);
        }        //读配置文件,读取配置文件中各个数据库的连接串,并将其存储在数组中
        //[in] ConfigPath: 配置文件的路径
        //[out] ConnectingString:数据库连接字符串 
        public void ReadConfig(string ConfigPath, string[] ConnnectionString)
        {
            XmlDocument XmlConfig = new XmlDocument();
            try
            {
                XmlConfig.Load(ConfigPath);
            }
            catch
            {            }            XmlNodeList XmlHostList;
            XmlHostList = XmlConfig.GetElementsByTagName("DataBaseDetail");
            int i = 0;
            foreach (XmlElement host in XmlHostList)
            {
                ConnnectionString[i++] = host.Attributes["conn_string"].Value;
            }
        }
        
    }
}
========================================我会的东西就这么多了,请大家指导一下如何根据上述程序所保存的连接串来连接数据库。在此感谢大家了!
如果您觉得我写的程序有什么错误或者不理想的地方请您一定费心帮忙指正,谢谢大家!

解决方案 »

  1.   

    正好也遇到楼主这样的问题
    自己在摸索着尝试我只是把XML文件中服务器地址读出来然后测试数据库连接是否正确然后再操作
      

  2.   

    其实没必要读取xml的 winform自带个app.config文件的 而且还有专门类去操作它的
    <configuration>
      <appSettings>
        <add key="SqlServerConnection" value="server=.;database=Northwind;uid=sa;pwd=sa"/>
      </appSettings>
    </configuration>System.Configuration.ConfigurationSettings.AppSettings["SqlServerConnection"]取就可以了。取出来后麽就好连了 sqlconnection sqlcommand。。
      

  3.   

    如果以读取XML配置文件内容来操作呢?怎样写c#的代码以实现数据库连接呢?
      

  4.   

    System.Data.OleDb.OleDbConnection conn = new OleDbConnection();
    conn.ConnectionString="";
    conn.Open;
      

  5.   

    在你的项目下,右键添加class,选择应用程序配置文件(app.config)默认是:<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    </configuration><?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings> 
     <add key="SqlConnection" value="server=.;database=Northwind;uid=sa;pwd=sa"/> 
    </appSettings> 
    </configuration>在你的cs代码要引入using System.Data.SqlClient;
    using System.Configuration;在读取数据连接时,使用ConfigurationSettings.AppSettings[]读取key的 Value
    strcon = ConfigurationSettings.AppSettings["SqlConnection"].ToString();
      

  6.   

    如果写字符串连接就更简单了 引入
    using System.Data.SqlClient;符串string strConnection= "Server=(Local);DataBase=Northwind;user=sa;pwd=sa";SqlConnection objConn=new SqlConnection(strConnection); ...//数据命令处理数据代码
    objConn.Open();
    objConn.Close(); 
      

  7.   

    在VS2005里面4楼和7楼的方法就会显示过时咯,2005里配置文件应该是这样:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name="SQLConnection" connectionString="server=.;integrated security=SSPI;database=pub"/>
      </connectionStrings>
    </configuration>
    然后在代码中using System.Configuration,连接方法中写:
    ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["SQLConnection"];
    string strCon = settings.ConnectionString;
    SqlConnection objConn=new SqlConnection(strCon);
      

  8.   

    1.编写格式化的文件xml、txt、profile,必要时可加密
    2.编写读取文件的类read,解密还原文件数据,分解格式化数据,进行赋值
    3.编写数据库连接类conn,根据read的数据连接数据库