프로그래밍/C# 31

[C#] 폼사이즈 수정안될때

비주얼스튜디오 사용중에 윈폼의 사이즈가 변경이 안되는 경우가 있습니다. 1. 컨트롤이 잠그기 상태로 설정이 된 경우 컨트롤이 잠그기 상태인 경우에는 사이즈가 변경이 안됩니다. 오른쪽 상단에 자물쇠모양이 표시되고 해제방법은 마우스 우클릭하여 컨트롤 잠그기를 해제하면 됩니다. 2. 폼사이즈의 MinimumSize, MaximunSize가 설정된경우 폼의 최대사이즈와 최소사이즈가 설정된경우에는 해당 사이즈보다 작거나 크게 변경이 되지 않습니다. 별 내용은 아니지만 간혹 해당설정을 해둔 상태에서 사이즈 변경이 되지 않아 헤매는 경우가 있으니 참고하시기 바랍니다.

프로그래밍/C# 2024.01.06

[C#] Sleep을 이용하여 CPU부하줄이기, Sleep(0)의미

While문이라 For문에서 무한루프를 돌리거나 오래도록 반복해서 작업을 해야되는 경우가 있습니다. 이때 CPU부하가 올라가는데 Sleep을 적절이 이용해서 CPU부하를 줄일 수 있습니다. Sleep을 하게되면 다른 스레드로 컨텍스트 스위칭을 하여 다른 스레드가 작업을 하게 합니다. 이렇게 해서 CPU부하도 줄이고 다른 스레드에서 작업을 할 수 있게 합니다. Sleep(0)과 0보다 큰 경우는 약간 다르게 동작하는데 관련 부분에 대해 알려드리겠습니다. 1. Sleep(0) MSDN자료를 확인해보면 인수값이 0인 경우 우선순위가 동일한 스레드에서 컨텍스트 스위칭하는 부분을 알 수 있습니다. 2. Sleep(0보다큰 경우) 대부분 Sleep을 쓸 경우 해당시간만큰 대기를 하고 싶을 경우에 사용하는 경우가 많..

프로그래밍/C# 2023.07.18

[c#] postgresql 연동

C#에서 postgresql을 연동하는 방법입니다. npgsql을 사용하면 되고 ADO.NET과 완벽하게 호환되는 것을 목표로 개발이 되어서 .NET의 데이터베이스 처리하는 부분 거의 동일하게 구현을 하면됩니다. 1. npgsql설치 - Nuget을 이용하여 Npgsql 7.0.4버전을 설치합니다. 설치명령어 : Install-Package Npgsql -Version 7.0.4 2. DB연결 및 데이터 저장,조회 ADO.NET과 동일한 클래스형태로 제공하기 때문에 어렵지 않게 구현이 가능합니다. 클래스명도 앞에 npg항목이 붙었고 나머지는 SqlClient를 사용할때와 동일합니다. 항목 설명 NpgsqlConnection posetgresql 데이터베이스에 대한 연결 NpgsqlCommand 데이터베이..

프로그래밍/C# 2023.06.10

[C#] 네이버센스 SMS문자보내기

SMS문자서비스를 보내는 방법중에 네이버 클라우드를 이용해서 보내는 방법에 대해 알아 보겠습니다. 네이버 클라우드를 이용하는 고객의 경우 네이버 센스 서비스를 이용하면 편리하게 SMS문자 보내는 부분을 작업 할 수 있습니다. 아래순서대로 진행하면됩니다. 1. 네이버 클라우드가입 https://www.ncloud.com/product 에 접속하여 문의하기 메뉴에서 클라우드 서비스관련 서비스 가입을 진행합니다. 2. 네이버 센스 서비스 신청 sms서비스를 사용하기 위해서는 네이버 센스 서비스를 신청해야합니다. 아래 링크에서 이용신청을 진행합니다. https://www.ncloud.com/product/applicationService/sens 3. 네이버 Simple & Easy Notification Se..

프로그래밍/C# 2023.02.14

[C#] 설치파일 만들기

프로그램 배포를 위해서 설치파일을 만드는 방법에 대해 알아보겠습니다. Microsoft Visual Studio Installer Projects를 사용해서 만들겠습니다. 1. 도구 -> 확장 및 업데이트 2. 온라인 -> Microsoft Visual Studio Installer Projects을 선택하여 설치 3. Visual Studio Installer 프로젝트 실행 확장프로그램을 설치 후 비주얼 스튜디오를 재실행하면 아래와 같이 기타형식프로젝트로 Installer항목이 추가된 부분을 확인 할 수 있습니다. 4. Setup프로젝트 만들기 SetupTestWinform이라는 소스코드가 있는 프로젝트를 추가하여 아래와 같이 Winform하나를 추가합니다. SetupTest프로젝트에서 마우스 오른쪽버..

프로그래밍/C# 2023.01.16

[C#] 파일 전체 읽기 (File.ReadAllText)

C#에서 파일 전체를 읽는 방법에 대해 알아보겠습니다. StreamReader를 이용해서 하는 방법도 있으나 간단하게 파일 개체를 를 이용해서 한번에 읽어서 처리해보겠습니다. 1. File Class를 사용하기 위해 System.IO 네임스페이스를 추가 2. 파일전체 데이터 읽기 : File.ReadAllText를 이용하여 파일전체정보를 읽습니다. 3. 라인단위로 읽기 : File.ReadAllLines를 이용하면 라인단위로 파일을 읽을 수 있습니다. 4. 바이트데이터로 읽기 : File.ReadAllBytes함수를 이용하여 바이트배열로 변환합니다. 전체소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30..

프로그래밍/C# 2023.01.09

[C#] 0 테이블을 찾을 수 없습니다

프로그램 처리중에 아래와 같이 "0 테이블을 찾을 수 없습니다" 라는 오류가 발생하는 경우가 있는데 발생한 원인과 해결방법에 대해 알아보겠습니다. 테스트를 하기위해 uspSearchUser라는 프로시저를 아래와 같이 만들어 보겠습니다. 프로시저 내용은 간단하며 테이블이 존재할 경우 전체 데이터가 조회되도록 하겠습니다. 1 2 3 4 5 6 7 8 9 10 CREATE PROCEDURE [dbo].[uspSearchUser] AS BEGIN SET NOCOUNT ON; IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserInfo]') AND type in (N'U')) BEGIN select * from User..

프로그래밍/C# 2022.12.26

[C#] MSSQL 저장프로시저 사용하기

MSSQL저장프로시저를 호출하여 데이터 처리하는 방법에 대해 알아보겠습니다. 1. MSSQL 저장프로시저 생성 먼저 MSSQL서버에서 아래와 같이 데이터를 Insert처리하는 uspAddUser라는 프로시저와 데이터를 Select하는 uspSearchUser라는 프로시저를 샘플로 만들어서 테스트 하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 -- 데이터 저장 CREATE PROCEDURE uspAddUser ( @id int, @name varchar(30) ) AS BEGIN SET NOCOUNT ON; INSERT INTO UserInfo (id,name) values (@id, @name); END GO ..

프로그래밍/C# 2022.12.26

[C#] MSSQL 연동방법

C#에서 MSSQL과 연동해서 데이터조회 및 삽입하는 방법에 대해 알아보겠습니다. 1. 테스트 DB생성 아래와 스크립트문을 이용해 sampledb라는 데이터베이스에 UserInfo테이블을 생성합니다. 1 2 3 4 5 6 7 8 9 10 11 create database sampledb go use sampledb go create table [UserInfo] ( id int, name varchar(30) ) 2. MSSQL연결하는 MssqlLib.cs클래스 파일생성 MSSQL데이터베이스와 연결하기 위해서는 System.Data.SqlClient 네임스페이스를 이용합니다. SQL서버에 연결하기위해서는 SqlConnection개체를 이용하고, SqlCommand ,SqlDataAdapter를 이용해서 ..

프로그래밍/C# 2022.12.16

[C#] WebClient 타임아웃 설정

웹서비스사용시 WebClient를 사용하여 POST요청을 하여 서버에 응답 받을 수 있습니다. 이때 WebClient의 경우 TimeOut속성이 없기때문에 타임아웃을 사용하려면 상속을 받아서 처리해야합니다. 1. WebClientTester.cs소스파일 WebClient대신에 MyWebClient클래스를 호출합니다. WebClient는 TimeOut값이 없어서 MyWebClient 클래스에 타임아웃값을 설정 할 수 있게 WebClient를 상속받아서 TimeOut처리부를 구현합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 using System; using System.Collections.Generic; using Sy..

프로그래밍/C# 2022.12.15
1 2 3 4