1.멀티쓰레드 => 작업을 병렬로 실행 가능.프로그램을 실행 시, UI Thread 실행됨. UI thread 는 싱글 쓰레드임. 여러 개의 기능들이 각 작업이 끝나면 순차적으로 다음 작업이 이뤄짐.using System.Threading;public partial class Form1 : Form{ Thread thread = null; private void Form1_Load(object sender, EventArgs e) { thread = new Thread(new ThreadStart(WorkThread)); thread.IsBackground = true; // UIThread가 종료될 때 내가 만든 쓰레드도 종료시킴. thread.Prio..
from절 뒤에 붙인다. join있으면 join 뒤에 붙인다. COLLATE Korean_Wansung_CI_AS 데이터베이스 속성에서 확인가능 일반 > 유지관리 > 데이터 정렬 Korean_Wansung_CI_AS에 대해 간략하게 설명해보면, Korean_Wansung : 한글 CI : Case Insensitive의 약자로서, 대/소문자를 구분하지 않는다. CS : Case Sensitive의 약자이면서 CI의 반대되는 것으로, 대/소문자를 구분한다. AS : Accent Insensitive의 약자로서, 악센트를 구분하지 않는다. 여기서 악센트는 언어의 높낮이를 말한다.(ex> 중국어의 성조) 그래서 결론적으로, Korean_Wansung_CI_AS는 한글이면서 대/소문자 및 악센트를 구분하지 않는..
SELECT MAX(CONVERT(Varchar(20), REG_TIME, 120) FROM TB_USER //yyyy-mm-dd hh:mm:ss CONVERT를 활용해서 날짜형식을 포맷할 수 있다. CONVERT(포맷(길이), getdate(), 반환형식) convert(varchar, getdate(), 120): "yyyy-mm-dd hh:mi:ss(24h)" 120은 날짜 및 시간 데이터 형식을 나타냅니다. ISO 8601 표준에 따라 형식화된 날짜와 시간을 나타냅니다. convert(varchar, getdate(), 20): "yyyy-mm-dd hh:mi:ss(24h)" 20은 출력되는 문자열의 최대 길이를 나타냅니다. 스타일(style)을 나타내는 것이 아니라 최대 길이를 나타내므로, 출력..
SELECT SUBSTRING(USER_ID, CHARINDEX('\', USER_ID) + 1, LEN(USER_ID)) FROM TB_USER USER_ID에는 aaa\id 형태로 데이터가 들어가 있을 때, id만 필요할 경우 ! *문자열 자르기 SUBSTRING('문자열', 시작위치, 길이) 시작 위치에서 길이만큼 문자열 자르기 *특정 문자 찾기 CHARINDEX('\', USER_ID)+1 \이후의 문자열을 가져온다. LEN(USER_ID) 문자열의 전체 길이를 가져오기 때문에, 마지막 글자까지 가져올 수 있다.
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 구성 및 서비스 // Web API 경로 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } } URL 경로 처음에 만들 때는 action이 빠져있으니, action 추가하기 파라미터는 id로 넣어야 저 경로 그대로 들어간다. seq로 했다가 왜 안되지,,..
프로그램 배포 평소 개발할 때는 Debug 모드에서 작업했음. 배포할 때는 Release로 변경 하여 다시 빌드해야 함. > 파일 탐색기 -> bin -> Release 폴더가 생긴 것을 확인할 수 있다. 폴더 내 파일들을 전부 복사해서, 사용자나 고객사에게 해당 파일들을 배포하면 된다. ** .net framework가 없거나 버전이 안 맞으면, .net framework를 설치하라는 메시지가 나온다. ** .net framework이기 때문에 운영체제가 윈도우인 환경에서만 실행이 가능하다. App.config 에서 데이터베이스 접속 정보를 변경해야 할때에는, exe.config파일 -> 우클릭 -> 메모장에서 편집 클릭 config 내용들이 보여지며, 수정 가능하다. 데이터베이스 접속 정보를 원격지를..
라이브러리 - 재사용성, 유지보수, 코드관리가 쉬워진다. 솔루션 내 클래스라이브러리 추가(.net framework) 빌드 후 프로젝트 참조 추가를 해주어야 사용 가능함. 기존 프로젝트에서 만들었던 메소드들의 재사용성을 높이기 위해 라이브러리화하기 ** 클래스 라이브러리 public class Class1 { private SqlConnection sqlConn = null; private string connectionString = ""; public void setConnectionString(string str) { connectionString = str; } public DataSet requestExecuteNonQuery(string query) { DataSet ds = new DataS..
저장 프로시저(SP) - 쿼리문을 여러 개 실행할 수 있다. - 장점: 소스코드와 분리되어 쿼리 관리가 쉬워진다. 새 프로시저 생성 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: 2024.01.28 -- Description:신규 책 추가 프로시저 -- ============================================= CREATE PROCEDURE InsertBOOKS -- 파라미터 : 프로시저를 호출함에 있어서 인자로 매개변수와 같은 역할을 하는 것임. @BOOKNO varchar(20), @BOOKNAME va..