'Programming/C#'에 해당되는 글 5건

  1. 2009.10.13 데이터베이스 연결
  2. 2009.10.13 스레드
  3. 2009.08.01 데이터 타입
  4. 2009.08.01 C#의 기본 구조
  5. 2009.08.01 닷넷이란?

Database에 관한 ADO.NET는 System.Data 네임스페이스로 등록 되어 있다.
Data Provider은 두가지로 나누어 있으며, 먼저 SQL 과 Access로 되어 있다.
- Connection 클래스
  1) SQL 서버 연결
      public SqlConnection();  //생성자 매개변수가 없는 경우
      public SqlConnection(string ConnectionString);  //생성자 매개변수가 있는 경우
     ex) SqlConnection conn = SqlConnection();  //데이터베이스 클래스 선언
           conn.ConnectionString = @"Server=localhost\....";  //데이터소스 설정
           conn.Open();  //데이터베이스 연결
           conn.Cloas();  //데이터베이스 닫기

  2) OLE DB 연결
      public OleDbConnection();  //생성자 매개변수가 없는 경우
      public OleDbConnection(string ConnectionString);  //생성자 매개변수가 있는 경우
     ex) OleDbConnection conn = OleDbConnection();  //데이터베이스 클래스 선언
           conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...."; 
           //데이터소스 설정
           conn.Open();  //데이터베이스 연결
           conn.Cloas();  //데이터베이스 닫기

  3) 클래스 속성
속성 설명 
 ConnectionString 데이터 베이스 연결 문자열 
 ConnectionTimeout 데이터 베이스 연결 대기 시간 
 Database  현재 연결해 사용할 데이터베이스 이름
 DataSource  SQL 서버 인스턴스 이름
 ServerVersion  SQL 서버 버전을 포함한 문자열
 State  현재 연결 상태

  4) Connection 클래스 멤버 메소드
 메서드 설명 
 ChangeDatabase  열려있는 데이터 베이스 이름 변경
 Close  데이터베이스 연결 종료
 CreateCommand  SQLCommand 객체 생성
 Open  데이터베이스 연결
 Dispose  SqlConnection 리소스 해제
Posted by koinit
,

스레드

Programming/C# 2009. 10. 13. 12:25

닷넷은 System.Threading 네임스페이스에 스레드 관련 클래스를 정의해 놓았다.
이 스레드를 생성 방법에는 Thread 클래스를 이용한 생성, ThreadPool 클래스를 이용한 생성, Timer 클래스를 이용한 생성이 있다.

1. Thread 클래스
  - 정의 : 가장 일반적으로 사용하는 방법이다.
  - 생성 방법
    delegate void ThreadStart();  // ThreadStart 델리게이트 정의
    Thread th = new Thread(new ThreadStart(start));
    th.Start();  // 스레드 실행
  - 예제
   

2. ThreadPool 클래스
  - 정의 : 스레드를 수용할 수 잇는 풀(Pool)을 만들고 이 풀(ThreadPool) 내에서 스레드를 유지함
  - 생성 방법
    ThreadPool.QueueUserWorkItem(new WaitCallback(Counter1);
    ThreadPool.QueueUserWorkItem(new WaitCallback(Counter2);
  - 예제

3. Timer 클래스
  - 정의 : Timer 로 3개의 Timer가 존재 함
     1) System.WindowsForm.Timer : 단인 스레드 환경에서 사용
     2) System.TimersTimer : 멀티 스레드 환경에서 사용
     3) System.Threading.Timer : 스레드에서 주로 사용
  - 생성 방법(System.Threading.Timer)
     delegate void TimerCallback(object o);  //TimerCal), null, 2000, 1000);
     // 스레드가 실행 될 메서드(count)와 Timer에 전달할 인자(null 갑), 스레드 지연시간(2000),
    // callback 호출 사이의 시간 간격(1000)을 설정
  - 예제

Posted by koinit
,

데이터 타입

Programming/C# 2009. 8. 1. 16:26

C#의 모든 데이터 타입들은 System.Object에서 파생된 System.Type로 부터 상속된다. 즉 모든 데이터 타입들의 부모는 System.Object이며 System.Object 는 어떠한 데이터 타입으로도 변환이 가능하다.
다음 표를 통해 어떠한 데이터 타입들이 있는지 알아보도록 하자.

타 입 실제이름 범 위
sbyte System.SByte -128 에서 127 까지
byte System.Byte 0 에서 255 까지
char System.Char 하나의 유니코드 문자. U+0000 에서 U+FFFF 까지
short System.Int16 -32,768 에서 32,767 까지
ushort System.UInt16 0 에서 65,535 까지
int System.Int32 -2,147,483,648 에서 2,147,483,647 까지
uint System.UInt32 0 에서 4,294,967,295 까지
long System.Int64 -9,223,372,036,854,775,808 에서 9,223,372,036,854,775,807 까지
ulong System.UInt64 0 에서 18,446,744,073,709,551,615 까지

int a = 11;
System.Int32 a = 11;
위의 두 문장은 같다고 할수 있다. int 를 써도 되고 System.Int32 를 써서 선언을 해주어도 똑같다는 이야기이다.


타 입 실제이름 정밀도 범 위
float System.Single 7개의 자릿수 ±1.5 ×10~45 에서 ±3.4 × 1038 까지
Double System.Double 15~16개의 자릿수 ±5.0 ×10~324 에서 ±1.7 × 10308 까지
Decimal System.Decimal 28~29개의 자릿수 1.0 ×10~28 에서 7.9× 1028 까지

타 입 실제이름 특 징
Object System.Object 모든 타입의 최상위 부모 클래스이다. C#에서 모든 객체들은이 Object 클래스로부터 상속받는다.
String System.String 문자열을 나타내는 타입이다.
Bool System.Boolean Boolean 값이며 참(true) 또는 거짓(false)를 나타낸다.

C#에서 모든 변수는 사용하기 전에 항상 초기화를 해 주어야 한다. 초기화를 해주지 않으면 에러가 난다. 또 변수에 초기값을 지정해 주지 않으면 디폴트 값으로 초기화가 되는데 각 타입의 디폴트 값은 다음의 표와 같다.

타 입 디폴트 값
bool false
byte 0
char '\0'
decimal 0.0M
double 0.0D
enum 0
float 0.0F
int 0
long 0L
sbyte 0
short 0
struct 구조체안의 모든 타입은 그에 해당하는 디폴트 값으로 할당된다.
uint 0
ulong 0
ushort 0

간단한 예제를 하나 해보자.
프로젝트에서 콘솔 응용 프로그램을 열고 소스코드에 다음과 같이 입력해 보자.


static void Main(string[] args)
{
 int age;
 string text;
 age = 24;
 text = "내 나이는 ";
 Console.WriteLine("{0}{1}",text,age);
}

int 형과 string 형을 선언하고 int 형 age에 24의 값을 넣어주고 string 형 text에 "내 나이는 " 이란 문장을 넣어준다. age 나이가 들어가고 text 에는 "내 나이는 " 이란 문장이 저장되 있다고 보면 된다. 그다음 Console.WriteLine 라는 함수로 결과값을 화면에 출력해 준다. {0}과 {1} 의 의미는 {0} 이 있는 곳에는 "{0}{1}" 다음에 첫번째 함수가 대입되고 {1} 에는 두번째 함수가 대입된다. "" Console.WriteLine은 쌍따옴표 안에 있는 값을 출력한다. 위의 소스코드를 실행시켜 보면 다음과 같은 결과를 볼수 있다.

변수 선언

<변수타입> <변수이름>과 같은 방법으로 선언하면 된다.
예) int a;

또다른 변수 선언 형태

int test1, test2; 와 같이 두개의 변수를 한꺼번에 선언할수 있다.

string test3 = "헤헤헤"; 와 같이변수 선언과 동시에 초기값을 줄수도 있다.

다음과 같이 변수에 식을 넣어줘도 된다.
int a;
a = 24 + 10;
a의 값이 얼마일까요? 34입니당..ㅡ.ㅡ;;; 케케..

 

- 개발자 커뮤니티 사이트 (http://www.sky.ph) -

Posted by koinit
,

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;


namespace WindowsApplication3
{
 ///
 /// Form1에 대한 요약 설명입니다.
 ///
 public class Form1 : System.Windows.Forms.Form
 {
  ///
  /// 필수 디자이너 변수입니다.
  ///
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Windows Form 디자이너 지원에 필요합니다.
   //
   InitializeComponent();

   //
   // TODO: InitializeComponent를 호출한 다음 생성자 코드를 추가합니다.
   //
  }

  ///
  /// 사용 중인 모든 리소스를 정리합니다.
  ///
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows Form Designer generated code
  ///
  /// 디자이너 지원에 필요한 메서드입니다.
  /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
  ///
  private void InitializeComponent()
  {
  }
  #endregion

  ///
  /// 해당 응용 프로그램의 주 진입점입니다.
  ///
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }
 }
}

C#의 기본구조는 namespace 안에 하나 이상의 클래스가 포함되어 있는 구조이다.

using System.Data;
using 는 함수를 줄여주는 선언이다. System.Data.Socket 이란 함수가 있는데 위에서 using 함수로 using System.Data라고 선언해주면 선언 후반부 부터는 Socket라고만 적어줘도 System.Data.Socket가 불려진다는 것이다.

namespace WindowsApplication3
네임스페이스의 이름을 정해주는 곳이다. 꼭 여는테그 닫는테그를 붙여 주어야 한다.

public class Form1 : System.Windows.Forms.Form
클레스의 이름을 정해주는 곳이다. 기본적으로 Forms.Form을 상속받는다.

public Form1()
프로그램이 실행하면 이곳의 코드가 실행된다.

private void InitializeComponent()
폼의 속성값을 지정하는 부분이다. 아직은 특별한 경우가 아니면 건들 필요가 없다.

static void Main()
{
Application.Run(new Form1());
}
아마도 많이 보아왔을 것이다. 프로그램의 주 진입점이며 하나의 Main()이 꼭 있어야 한다.
프로그램이 실행되면 Application.Run(실행될 클래스) 가 호출된다.

프로그램을 작성하고 디버깅 방법은 위에 화살표 모양을 누르면 된다.

- 개발자 커뮤니티 사이트 (http://www.sky.ph) -

Posted by koinit
,

닷넷이란?

Programming/C# 2009. 8. 1. 16:23

마이크로소프트 사가 닷넷을 공표하였다. 닷넷... 아직 닷넷이란 단어가 생소할거다. 그냥 프로그램 Language 라고 알아두면 편할것이다. 닷넷이 발표되면서 닷넷에 대한 관심이 많이 두드러지고 있다. 닷넷을 기반으로 바꾸는 기업들이 하나둘 늘고있다. 닷넷의 가장 두드러진 특징은 XML의 지원이다. XML은 현제 표준안으로 채택되어져 있다.

XML을 간단히 설명하자면 XML을 지원하는 모든 프로그램과 의사소통을 할수 있는 언어라는 것이 특징이다. 예를들어 만약 VC 로 계산기 프로그램을 만들었다고 하자. C#에서 VC에서 만든 계산기를 써서 계산을 하고 싶다고 하자. 기존에는 프로그램 끼리 의사소통 방식이 달라서 사용할수 없었지만 공통적인 언어인 XML이 나옴으로서가능해졌다.

또한 닷넷은 객체지향 프로그래밍이다. 객체? 생소한 언어일것이다. 게시판을 예를들어 간단하게 설명하겠다. 게시판에는 글쓰기,글읽기,글편집,검색 등등의 많은 기능들이 있다. 이 기능들 각각이 객체이다. 이 객체는 재 사용이 가능하며 이로써 프로그램의 효율을 높일수 있다.
닷넷에는 C#, ASP.NET, Visual Basic.NET,Visual C++.NET 등의 다양한 언어를 지원하고 있다. 이중에서 C#은 닷넷에 가장 효율화된 언어라고 생각한다. 닷넷 플레폼은 Framework를 기반으로 하고 있다. Framework에 대한 설명은 다음장에서 하기로 하자.

닷넷에 대한 설명은 이쯤하고 닷넷이 어떻게 생겼는지 함 보자..ㅡㅡ;


- 개발자 커뮤니티 사이트 (http://www.sky.ph) -

Posted by koinit
,