솔루션 탐색기에서 우클릭 → 추가 → 새 프로젝트를 클릭합니다. 클래스 라이브러리(.NET Framework)를 선택하고 다음버튼을 클릭합니다. 라이브러리 이름을 작성하고 만들기버튼을 클릭합니다. 먼저 데이터베이스 조회, 삭제, 수정, 삽입에 대한 라이브러리를 만들어보겠습니다. using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ClassLibrary1{ public class Class1 { private SqlConnection co..
1. 저장프로시저란?저장 프로시저란 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합입니다. 이에 대해 위키백과에서는 아래와 같이 설명하고 있습니다.저장 프로시저 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 저장 프로시저 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 저장 프로시저 또는 스토어드 프로시저(stored procedure)는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 데이터베이스에 대한 일련의 작ko.wikipedia.org 1) 장점쿼리문을 작성하는 것보다 저장프로시저를 사용하게 되면 소스코드와 분리되어 쿼리문을 관리하므로 유지보수성이 좋아집니다. 또한 직접 쿼리문을 작성하게 되면 문자열을 분석하여 쿼리문 하..
우선 예제를 보겠습니다. using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace study9{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } ..
C# 에서 Timer는 특정 작업을 주기적으로 실행하기 위해 사용합니다. 이 Timer에는 3가지 종류의 타이머가 있습니다. 각각의 Timer에 대해 알아보겠습니다. 1. System.Windows.Forms.Timer메인스레드에서 동작하는 Timer입니다. 간단한 작업 그리고 UI 작업이 필요한 경우에 적합하며 Timer가 긴 작업을 할 경우 버튼클릭을 요청해도 먹히지 않는 현상이 발생할 수 있다고 합니다. 일반적으로 도구상자에 있는 Timer가 이에 해당됩니다. 예제) using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq..
form1.cs (이벤트 구독자)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;namespace WindowsFormsApp5{ public partial class Form1 : Form { //이벤트 구독자 public Form1() { InitializeComponent(); } private..
1. 동기와 비동기일반적으로 코드는 동기적으로 실행됩니다. 동기적으로 실행된다는 말은 아래 그림처럼 요청 후 반환받은 후 다음을 실행한다는 뜻입니다. 반면에 비동기는 요청을 보낸후 반환을 기다리지 않습니다. 숫자를 보시면 반환되는 순번은 적혀있지 않습니다. 왜냐하면 코드가 실행되는데 걸리는 시간에 따라 반환 순서가 달라질 수 있기 때문입니다. 이러한 이유로 비동기는 동기보다 일반적으로 속도가 빠릅니다. 동기에 비해 대기하는 시간이 적기때문입니다. 반면에 비동기의 단점으로는 순서를 보장할 수가 없습니다. 2. 비동기 사용방법using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Syst..
1. 스레드 사용방법일반적으로 프로그램은 한번에 하나씩 실행됩니다. 그러나 멀티스레드를 사용하면 병렬로 실행하게 만들 수 있습니다. 예제를 들어보겠습니다. 먼저 스레드를 사용하지 않는 경우를 보겠습니다. using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp2{ public partial class Form..
1. 데이터베이스 연결1) MSSQL 연결MSSQL을 설치하고 세팅하는 방법은 아래 글을 참고 하시면 됩니다. MSSQL 설치 (tistory.com) MSSQL 설치1. 운영체제 비트수 확인 확인방법은1. 제어판 → 시스템 클릭2. 내PC(내컴퓨터) 오른쪽 클릭 → 속성 버튼을 클릭 두가지 방법중 하나를 선택하시면 됩니다. 위 화면 중 빨간 네모박스에 있zero-week.tistory.com 먼저 SQL Management Studio 를 실행합니다. 데이터베이스 우클릭 새 데이터베이스 생성을 클릭합니다. 데이터베이스 이름을 작성하고 확인을 누르면 데이터베이스가 생성됩니다. Visual Studio를 실행합니다. MSSQL을 연결할때는 SqlConnection 클래스를 사용합니다. (mysql..
객체지향 프로그래밍 OOP(Object Oriented Programming)의 특성은 아래와 같습니다.추상화(Abstraction)캡슐화(Encapsulation)상속(Inheritance)다형성(Polymorphism)1. 캡슐화캡슐화(Encapsulation):캡슐화의 주된 목적은 "데이터의 은닉"입니다.민감한 데이터를 private로 감추어서 public의 setter또는 getter메소드로만 private로 감춘 데이터에 접근하거나,변경 할 수 있습니다.따라서 이러한private변수에 read-only(읽기전용) 또는 write-onlty(변경만 가능)한 선택접 접근을 제어할 수 있게됩니다.캡슐화를 하게되면 보안성이 증가되며 맴버변수와 함수를 더 좋게 제어 할 수 있게 됩니다. 예제) Car.c..
1. 배열using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{ class Program { static void Main(string[] args) { //배열의 선언. string[] cars = new string[10]; //배열의 개수는 10개, 타입은 string Console.WriteLine(cars.Length); //배열의 선언과 동시에 초기화. string[] food =..