Common C#/C# GDI+ Study2008. 6. 9. 16:09
using System;
using System.Collections.Generic;
using System.Text;

namespace ICS.Core.Controls
{
    #region IControlBase
    /// <summary>
    /// 컨트롤의 공통 기능을 정의한다.
    /// </summary>
    public interface IControlBase
    {
        /// <summary>
        /// 필수 입력 여부를 가져오거나 설정한다.
        /// </summary>
        bool Mandatory
        {
            get;
            set;
        }

        /// <summary>
        /// 입력할 수 있는 문자열의 최대 길이를 설정한다. 영문은 1Byte, 한글은 2Byte로 계산된다.
        /// </summary>
        int MaxStringLength
        {
            get;
            set;
        }
    }
    #endregion

    #region BindingType - 컨트롤 바인딩 방법 정의
    /// <summary>
    /// 컨트롤의 바인딩 방법을 정의합니다.
    /// </summary>
    public enum BindingType
    {
        /// <summary>
        /// 바인딩을 하지 않습니다.
        /// </summary>
        None,
        /// <summary>
        /// 컨트롤이 활성 상태가 되었을 경우 바인딩합니다.
        /// </summary>
        Enter,
        /// <summary>
        /// DropDown 이벤트 발생시 바인딩합니다.
        /// </summary>
        DropDown,
        /// <summary>
        /// 폼 로드시 바인딩합니다.
        /// </summary>
        FormLoad
    }
    #endregion
    #region InputFormat - 입력 형식 정의
    /// <summary>
    /// 입력 형식을 정의합니다.
    /// </summary>
    public enum InputFormat
    {
        /// <summary>
        /// 모든 입력값을 받습니다.
        /// </summary>
        All,
        /// <summary>
        /// 영문만 입력할 수 있습니다.
        /// </summary>
        EnglishOnly,
        /// <summary>
        /// 한글만 입력할 수 있습니다.
        /// </summary>
        KoreanOnly
    }
    #endregion
    #region PanelType - Panel Type 정의
    /// <summary>
    /// Display 형태를 정의합니다.
    /// </summary>
    public enum PanelType
    {
        /// <summary>
        /// 표시하지 않습니다.
        /// </summary>
        None,
        /// <summary>
        /// 기본 모양으로 설정합니다.
        /// </summary>
        Standard,
        /// <summary>
        /// 상세 정보 모양으로 설정합니다.
        /// </summary>
        Detail,
        /// <summary>
        /// 필수 정보 모양으로 설정합니다.
        /// </summary>
        Mandatory,
        /// <summary>
        /// 조회 조건 모양으로 설정합니다.
        /// </summary>
        Search
    }
    #endregion
    #region ListBoxType - List Box Type 정의
    /// <summary>
    /// Display 형태를 정의합니다.
    /// </summary>
    public enum ListBoxType
    {
        /// <summary>
        ///
        /// </summary>
        None,
        /// <summary>
        ///
        /// </summary>
        Standard,
        /// <summary>
        ///
        /// </summary>
        Logging
    }
    #endregion
    #region TabType - Tab Type 정의
    /// <summary>
    /// Tab Type을 정의합니다.
    /// </summary>
    public enum TabType
    {
        /// <summary>
        ///
        /// </summary>
        None,
        /// <summary>
        ///
        /// </summary>
        Standard,
        /// <summary>
        ///
        /// </summary>
        Detail
    }
    #endregion
    #region Skin Color - Main Menu Skin Color 정의
    /// <summary>
    /// Main Menu의 Skin Color를 정의합니다.
    /// </summary>
    public enum SkinColor
    {
        /// <summary>
        ///
        /// </summary>
        Whites,
        /// <summary>
        ///
        /// </summary>
        Blues,
        /// <summary>
        ///
        /// </summary>
        Reds,
        /// <summary>
        ///
        /// </summary>
        Greens
    }
    #endregion

Posted by penguindori

안녕하세요. DB 연동이 잘 안되서 이렇게 지식인에 물어봅니다.

11g 입니다. 참고로 ^^;


tnsnames.ora


DBDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracletest.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = DBDB)
      (SERVER = DEDICATED)
     
    )
  )


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracletest.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

--------------------

listener.ora


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracletest.com)(PORT = 1521))
    )
  )


프로그램 실행시 이런 에러가 발생 합니다.

사용자 삽입 이미지

프로그램 소스 입니다.


private string connectionString = "Data Source=oracletest.com;Integrated Security=yes;pwd=1212;uid=okok";


  private void Form1_Load(object sender, EventArgs e)
        {
         
            using (OracleConnection connection = new OracleConnection(connectionString))
            {
                try
                {
                    OracleCommand cmd = new OracleCommand();
                    cmd.Connection = connection;
                    connection.Open();
                    MessageBox.Show("이상없음");
                }
                catch (Exception k)
                {
                    MessageBox.Show(k.Message.ToString());
                }
            }
        }


위의 내용중 잘못된 부분을좀 알려주시거나 혹 의심이 가는 부분이 있다면 많은 답변 부탁드리겠습니다.

(__)(^^)


수집허용 | 아이디비공개

의견 쓰기

sewooim님의 지식을 나누어주세요!
답변하시면 내공 10점을, 답변이 채택되면 내공 125점(채택25+추가100)을 드립니다.
>나도 답변하기

질문자 선택

re: C# Oracle DB 연동이 잘 안되요. 도와주세요. 내공 100 겁니다.

ngmaster

답변채택률 76.5%

2008.06.03 12:51

질문자인사 감사합니다. 소중한 답변 정말 감사합니다. 하시는일 항상 복받으시길 바랍니다.

Data Source=oracletest.com; 이 부분에서 잘못되었네요.

데이터 소스에 접근하기 위한 알리어스가 필요합니다.

Data Source=oracletest.com/DBDB; 와 같이 적어주셔야 해요.

또는 Data Source=DBDB; 와 같이 적어주셔도 됩니다.

물론 framework 버전과 oracle 버전에 따라서 약간 틀릴수도 있어요..;;


저는 11g는 아직 사용해보진 않았지만 크게 틀리진 않을거 같네요-_-;;

tnsnames에 정의해준 알리어스 (DBDB 또는 ORCL)를 뒤에 적어주고 해보세요.

의견 2

  • sewooim
    안녕하세요. 답변 감사드립니다. 해당 말씀하신 부분이 틀린점 맞고 또한 Integrated Security=yes 이부분을 제거해 주니깐 잘 되네요 ^^;; 혹 저 보안 관련 부분에 대한 내용을 아시면 답변 (Integrated Security=yes) 부탁드립니다. 문제는 해결이 되었어요 일단은 ^^ 내일쯤 보고 내공을 드리도록 하겠습니다. 08.06.03 23:44
  • ngmaster
    Integrated Security 요 부분은 저도 정확하게는 파악하고 있진 않습니다. 만약 그 부분에 true또는 ssip던가..;; 아무튼 지정하게 되면 아참..yes도..마찬가지구요... 윈도우즈 통합계정을 사용한다는 뜻으로 님의 윈도우즈 계정으로 디비에 접속을 하게 될겁니다. 그래서 userid와 pwd를 입력할 필요가 없으며, false 또는 no로 설정하시면 디비에 접속할 계정 및 비밀번호를 입력해야 합니다. 기본적으로 false로 사용하는걸로 알구 있구요. 그 부분은 속성이기 때문에(기본값 false) 삭제하셔도 상관이 없습니다. 08.06.04 10:21
Posted by penguindori
카테고리 없음2008. 6. 4. 00:00
두번째로는 Table을 생성해야 한다.

아참 그전에 이 프로젝트 명칭을 몰로 할까.. 생각을 하다가..

"H's"로 그냥 막 정했다.. ㅎㅎ 휴먼들.. 이란 뜻을 가지고 ^^! 통칭 Hs로 하겠다.

이걸 말들기전에 구상을 해야겠다. 회원등록을 하기전에 어떤 정보를 등록 할것인지..

또 키값은 몰로 구분할것인지 대강의 구상을 한번 해보자.

1. 구상

    회원을 식별하기 위해서 우선 번호를 정할까 한다. 등록 되는 순서대로..
    1) 회원번호         :   번호는 숫자로 정한다.
    2) 회원명              :  가입자 이름을 등록해야겠다 ^^
    3) 회원 아이디      :  가입자 전용 ID   
 
4) 회원 비밀번호   :  가입자 비밀번호
    5) 회원 메일주소   :   회원 메일주소  
    6) 사진등록           :  나중에 구현하겠지만 ^^ 대비용으로 만들어 놓차 ㅎ
    7) 성별                  :  남자인지 여자인지 구별을 위해 ㅎㅎ;
    8) 자기 프로필       :  간단한 자기소개
    9)  임시로 만들자
    10) 임시로 만들자
    11) 임시로 만들자
    12) 임시로 만들자
    13) 임시로 만들자
    14) 임시로 만들자
    15) 임시로 만들자

        컬럼명                        속성            
       Hs_NUM             NUMBER  (primary key)
         
        컬럼명                        속성
      Hs_USERNAME    Varchar2(14)
   
 
       컬럼명                 속성
Posted by penguindori
2008/C#2008. 6. 3. 23:16

회원등록 프로젝트
: 이번 프로젝트의 목적은 프로그램을 통해서 DB에 데이터를 조작하는 방법을 습득
  하기 위한 프로젝트이다.

1. 환경 OS : Windows Vista
           DB : Oracle 11g
           Program : C#
------------------------------

Windows Vista 에 Oracle 11g 설치 하기.

11g 설치시 주의 사항

1. 사용자 계정명은 영어로 되어야 한다. 설치 도중에 에러 발생
2. 설치 폴더의 경로에 공백이 있거나 한글이 있어서는 안된다. 마찬가지로 에러발생.
3. 적당한 HDD의 공간
4. Microsoft Loopback Adapter 설치 및 10.10.10.10 /255.255.255.0 설정
   (하드웨어 추가에서 네트워크 어뎁터를 선택후 추가 설치를 하면 된다.)
위의 4가지를 우선 기본적으로 지키면 별 탈 없이 설치가 가능하다.

Oracle 11g 설치 후 행해야 할 계정 생성및 권한 설정

사용자 삽입 이미지
우선 sys 계정으로  sqlplus로 접속을 한다.

sqlplus "/as sysdba"

접속이 되면

SQL> show user  명령을 통하여 현재 사용자를 확인 한다.
         User은 "SYS" 입니다.  <= 라는 결과가 나올것이다.

그다음으로는 내가 막 가지고놀 계정을 만들어야 된다.

SQL> create user sewoo identified by ******(비밀번호);

그럼 해당 계정의 생성과 비밀번호를 설정한 것이다.

마지막으로 해당 생성계정으로 몬가를 할 수 있게 권한등을 줘야 한다.

SQL> grant connect, resource, dba to sewoo;

위와 같이 연결, 테이블 생성등 DBA 권한등.. 을 sewoo에게 주자 ㅎㅎ

이것으로 기본적인 DB 설정을 완료 하였다. 추후 실력을 늘리다 보면 추가적으로

Oracle란에 잘 정리하여 작성하겠다.







Posted by penguindori
카테고리 없음2008. 5. 28. 23:49
Posted by penguindori
DataBase/Oracle2008. 5. 22. 12:18
//신규 오라클 사용자에게 Table 권한 주기

GRANT SELECT, INSERT, UPDATE, DELETE ON SEWOO.SEWOOTABLE TO SEWOO2

GRANT를 통해서  위의 조작어를  사용하게 한다.   SEWOO의 SEWOOTABLE 을  SEWOO2 한테 권한을 준다.
Posted by penguindori
2008/C#2008. 5. 19. 17:44

//2008년 5월 19일 박세우 작성 sewooim골뱅이.네이버점캄

동아리 과제 1 이걸 Pass 해야 다음단계로 ^^*

1. 동적으로 버튼을 임의로 만들기
2. 좀더 struct 나 class 를 만들어서 활용해보자.
-------------------------------------------
설명 : 해당 내용은 닷넷 2008로 제작하였습니다.  그림 -> 내용 설명 식으로 작성하겠습니다.
-------------------------------------------

1) 버튼 위치 및 버튼 기능 설정 class

using System;
using System.Collections.Generic;
using System.Text;

namespace Calculation
{
    /*
     * 버튼을 동적으로 할당하게 합니다.
     * Class Name  : ViewButton
     * Method Name : BtnSetting
     */
    class ViewButton
    {
        static System.Windows.Forms.Button[] _btn = new System.Windows.Forms.Button[10];

        public System.Windows.Forms.Button [] btn
        {
            get {return _btn;   }
            set {_btn = value;  }
        }

        public ViewButton()
        {
            for (int i = 0; i < _btn.Length; i++)
            {
                _btn[i] = new System.Windows.Forms.Button();   // Hip Memory에 할당 합니다.
            }
        }

        public void BtnView()
        {
            for (int i = 0; i < _btn.Length; i++)
            {
                _btn[i].Text = i.ToString();
                _btn[i].Size = new System.Drawing.Size(40,20);
                _btn[i].Name = i.ToString();
                _btn[i].Tag = i.ToString();
                BtnPosition();
            }
        }

        private void BtnPosition()
        {
            int w;
            int p = w = 0;
            for (int i = _btn.Length -1; i >= 0; i--)
            {
                if (i % 3 == 0)
                {
                    if (i == 9)
                    {
                        p = 10;
                        w = 200;
                        _btn[i].Location = new System.Drawing.Point(w, p);
                    }
                    p += 20;
                    w = 200;
                    _btn[i].Location = new System.Drawing.Point(w, p);
                }
                else
                {
                    w -= 50;
                    _btn[i].Location = new System.Drawing.Point(w,p);
                }
            }
        }

    }
}

---------------
Form1.cs

 public partial class Form1 : Form
    {
        ViewButton vb;
       
        string ok;
        public Form1()
        {
            InitializeComponent();
        }

 private void Form1_Load(object sender, EventArgs e)
        {
            vb = new ViewButton();
            vb.BtnView();
          
            for (int i = 0; vb.btn.Length > i; i++)
            {
                this.panel1.Controls.Add(vb.btn[i]);
                vb.btn[i].Click += new EventHandler(Button_Click);
            }

        }

void Button_Click(object sender, EventArgs e)
        {
            Control ctl = (Control)sender;
           
            ok += ctl.Tag.ToString();
           
            this.labNum.Text = ok;
        }
private void button1_Click(object sender, EventArgs e)
        {
            op = new Operation();
            op["+"] = labNum.Text;
            labNum.Text = null;

        }

    }
}
---------------
Operation.cs
namespace Calculating
{
    class Operation
    {
        private int values;
        private int Result = 0;
        public string this[string what]
        {
            get
            {
                switch (what)
                {
                    case "=": return Result.ToString();
                    default: return "";
                }
            }
            set
            {
                switch (what)
                {
                    case "+":
                        values = value;
                        break;
                    default: break;
                }
            }
        }

    }
}

 

Posted by penguindori
2008. 5. 15. 12:15

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

카테고리 없음2008. 5. 7. 02:37

오늘 부로 Tistory 시작 한다.

Posted by penguindori