본문 바로가기

C# 개인 공부 기록용/Memo

Xml 값 가져오기

<?xml version="1.0" encoding="utf-8" ?>
<oracle>
	<info>
		<ip>123.456.789.0</ip>
		<service>SERVICE</service>
		<id>ID</id>
		<pw>PASSWORD</pw>
	</info>
</oracle>

파일경로 : bin\Debug

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client; // Oracle 사용
using System.Xml; // Xml 사용

namespace XML_STUDY
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string ip;
        string service;
        string id;
        string pw;

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                XmlDocument xdoc = new XmlDocument();
                string url = Application.StartupPath + @"\Config.xml"; // bin\Debug 안에 xml파일 넣기
                xdoc.Load(url);

                XmlNode root = xdoc.SelectSingleNode("oracle");
                XmlNodeList xmllist = root.SelectNodes("info");

                foreach (XmlNode xn in xmllist)
                {
                    ip = xn["ip"].InnerText;
                    service = xn["service"].InnerText;
                    id = xn["id"].InnerText;
                    pw = xn["pw"].InnerText;
                }
            }
            catch
            {
                MessageBox.Show("Xml 오류");
            }
        }

        private void BTN_LOGIN_Click(object sender, EventArgs e)
        {
            try
            {
                string connstr = "data source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)" +
                    "(HOST = " + ip + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = " + service + ")));USER ID=" + id + ";PASSWORD=" + pw + ";";

                OracleConnection conn = new OracleConnection(connstr);
                conn.Open();

                if (conn.State == ConnectionState.Open)
                {
                    MessageBox.Show("연결되었습니다.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("아이디 혹은 틀린 비밀번호입니다.");
            }
        }
    }
}

 

아이디 & 패스워드 입력 없이도 접속이 가능하다.
(Xml에서 미리 오라클에 대한 정보를 입력해놨고 그것을 받아와서 사용했기 때문에)