C#
-
"이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다." 두번째 해결방법기타 정보/정보공유 2020. 1. 20. 18:54
2016/07/21 - [끄적이는/정보공유] - [비주얼 스튜디오 오류] 이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다. 디자이너에서 검사한 파일의 클래스는 다음과 같습니다.[비주얼 스튜디오 오류] 이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다. 디자이너에서 검사한 파일의 클래스는 다음과 같습니다.비주얼 스튜디오에서 코딩을 하다가 발생한 오류. 원인은 A클래스로 작업을 하다가 B라는 클래스(여기선 윈폼)를 생성하고 이 B 클래스를 참조할 때 인식하지 못해서 발생하는 것이다. 이것을 해결하려면 비주얼스..jasmintime.com 2016년에 같은 주제로 오류를 해결하는 방법을 적은 적이 있다.그때 당시에는 이 방법으로 ..
-
C# 웹크롤링 selenium 사용기닷넷/C# 2020. 1. 8. 22:42
쿠팡사이트를 크롤링하려는데 단순히 웹브라우저나 WebClient 통해서 html을 가져오는 것으로는 브라우저에 보이는 그대로 크롤링을 할 수가 없었다. (이는 해당 사이트에서 오른쪽마우스를 클릭해 페이지 소스보기했을 때 나오는 것과 같다.) selenium은 chrome 브라우저를 열어서 크롤링을 하는 부분이라 사이트에서 F12를 눌렀을 때 보이는 것과 같아 내가 원하는 것을 딱딱 크롤링할 수가 있었다. 프로젝트에서 selenium을 사용하려면 먼저, 비주얼스튜디오에 도구> NuGet 패키지 관리자> 솔루션용 NuGet 패키지 순으로 클릭한다. 찾아보기 탭을 클릭하고, selenium으로 검색한다. 그 중에서 Selenium.WebDriver, Selenium.WebDriver.ChromeDriver, ..
-
C# 웹이미지 다운로드 내폴더에 저장하기닷넷/C# 2020. 1. 3. 00:26
private bool DownloadRemoteImageFile(string uri, string fileName) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); bool bImage = response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase); if ((response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Moved || response.S..
-
C# WebBrowser없이 HTML 파싱하기(HtmlAgilityPack 사용기)닷넷/C# 2019. 12. 26. 19:56
웹브라우저로 사이트 띄우고 html을 가져오고 하는게 은근히 손이 많이 들어간다. 처음부터 끝까지 오로지 하나의 메소드 안에서 코드로만 작업하고 싶다. 또 사이트 주소는 모르고 html 형식으로 된 텍스트만 가지고 있을때 html을 파싱할 수 있는 방법이 어디 없을까? 도구 > NuGet 패키지 관리자 > 솔루션용 NuGet 패키치관리 순으로 클릭한다. HtmlAgilityPack을 검색한다. HtmlAgilityPack을 설치한다. HtmlAgilityPack이 설치된 후 사용할 폼 코드 맨 윗줄에 System의 HtmlDocument랑 충돌나므로 using hap = HtmlAgilityPack; 이런 식으로 입력한다. private void buttonSystem_Click(object sender..
-
C# 문자열을 열 글자씩 쪼개기, 문자열 자르기닷넷/C# 2019. 6. 19. 17:17
텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10글자마다 줄바꿈을 주었다. private void button1_Click(object sender, EventArgs e) { string strings = textBox5.Text; int indexStart = 0; // 시작 위치 int indexEnd = 0; // 종료 위치 int iSplit = 11; // 몇 글자씩 쪼갤 것인지 + 1 (문자열을 10글자씩 쪼갤 때 = 11) int totalLength = strings.Length; // 문자열 길이 int forCount = totalLength / iSplit; // 글자를 몇 번 쪼개야 하..
-
C# 책 추천 네트워크, 소켓, 문법, 디자인패턴 등등도서 2019. 5. 21. 18:15
1. TCP/IP 소켓 프로그래밍 - C# 버전 David B. Makofske (지은이),최낙준 (옮긴이)사이텍미디어(희중당)2005-01-24 TCP/IP 소켓 프로그래밍 - C# 버전 TCP/IP 뿐만 아니라 넌블로킹 소켓, 멀티플렉싱, 쓰레드, 비동기 프로그래밍 그리고 멀티캐스팅 등 주요 소켓 프로그래밍 기법에 대한 튜토리얼 형태의 설명과 그에 해당하는 많은 코드 예제가 있다. 또한, 빠른 속... www.aladin.co.kr 2. 실무자를 위한 C# 네트워크 프로그래밍 Richard Blum 저 / 김형규, 최낙준 편역 | 지앤선(志&嬋) | 2004년 01월 09일 | 원제 : C# Network Programming 실무자를 위한 C# 네트워크 프로그래밍 초보자들이 C#의 네트워크 클래스와..
-
C# and Database(SQLite, MySQL, MSSQL, Oracle) data type mapping닷넷/C# 2019. 5. 3. 17:49
1. C# vs SQLite: C# SQLite The field name Type Library type GetFieldType(#) Transformation Remarks F_BOOL bool BIT NOT NULL Boolean F_BOOL_NULL bool? BIT Boolean F_SBYTE sbyte INT8 NOT NULL SByte sbyte_ F_SBYTE_NULL sbyte? INT8 SByte sbyte_ F_BYTE byte UINT8 NOT NULL Byte F_BYTE_NULL byte? UINT8 Byte F_SHORT short INT16 NOT NULL Int16 F_SHORT_NULL short? INT16 Int16 F_USHORT ushort UINT16 NOT NU..
-
C# WinForms Datagridview Paging, 데이타그리드뷰에서 데이터를 페이지로 나누기닷넷/WinForms 2019. 5. 3. 11:29
티스토리 에디터가 바뀌면서 Color Scripter에서 복사한 게 이상하게 붙여진다. 다행이도 주소로 공유할 수 있어서 코드는 아래 주소를 통해 공유한다. Form1.Designer.cs(디자인): http://colorscripter.com/s/dpYT9Qb 공유된 코드 - Color Scripter 코드 설명 : [Form designer cs]How to paging with datagridview in c# colorscripter.com Form1.cs(코드): http://colorscripter.com/s/VyVn5TH 공유된 코드 - Color Scripter 코드 설명 : How to paging with datagridview in c# colorscripter.com 프로그램 실행 영상
-
C# DataGridView 편집, 추가, 삭제, 열 다시 정렬닷넷/WinForms 2019. 4. 21. 09:04
// 편집 불가능(읽기) dataGridView1.ReadOnly = true; // 편집 가능(읽기, 쓰기) dataGridView1.ReadOnly = false; // 추가 O dataGridView1.AllowUserToAddRows = true; // 추가 X dataGridView1.AllowUserToAddRows = false; // 삭제 O dataGridView1.AllowUserToDeleteRows = true; // 삭제 X dataGridView1.AllowUserToDeleteRows = false; // 열 다시 정렬 O dataGridView1.AllowUserToOrderColumns = true; // 열 다시 정렬 X dataGridView1.AllowUserToOrd..
-
C# 요일 구하기 DayOfWeek 메서드닷넷/C# 2019. 4. 20. 09:07
C#에서 요일을 구하는 DayOfWeek 메서드 사용법 //월화수목금토일을 int형으로 반환하는 함수 int WhatDay(DateTime _dt) { int iReturn = 0; DayOfWeek dt = _dt.DayOfWeek; switch (dt) { case DayOfWeek.Monday: //월 iReturn = 1; break; case DayOfWeek.Tuesday: //화 iReturn = 2; break; case DayOfWeek.Wednesday: //수 iReturn = 3; break; case DayOfWeek.Thursday: //목 iReturn = 4; break; case DayOfWeek.Friday: //금 iReturn = 5; break; case DayOfW..
-
C# How to export data direct from reportviewer to excel.닷넷/WinForms 2019. 4. 19. 12:15
private void btnExcel_Click(object sender, EventArgs e) { Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; byte[] bytes = reportViewer1.LocalReport.Render( "Excel", null, out mimeType, out encoding, out extension, out streamids, out warnings); SaveFileDialog save = new SaveFileDialog(); save.Filter = "Excel File (*.xls)|*.xls|All Files (*.*)|*.*"; save...
-
C# List<type> 중복제거닷넷/C# 2019. 4. 14. 21:33
List의 Distinct를 쓰면 된다. 단, List에 타입이 string이나 int 같이 속성이 하나일 때만 된다. 속성이 여러개이면 중복제거가 되지 않으므로 중복을 제거할 값의 타입으로 먼저 리스트를 만들고 값을 넣어 중복제거하고 다른 리스트에 담으면 된다. 다음은 카톡 대화내용 분석에서 방문자리스트를 만들 때 사용한 방법이다. // 방문자 이름만 담을 리스트 List list = new List(); for (int i = 3; i 0) { if (text[i].Substring(0, 1) == "[") { string[] s = text[i].Split(' '); try { if (s[1].IndexOf("[오") > -1) { list.Add(s[0]); } } catch { continue;..
-
C# 데이터그리드뷰 CSV 파일로 저장하기닷넷/WinForms 2019. 4. 14. 21:14
private void Save_Csv(string fileName, DataGridView dgv, bool header) { string delimiter = "`"; // 구분자 FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); StreamWriter csvExport = new StreamWriter(fs, System.Text.Encoding.UTF8); if (dgv.Rows.Count == 0) return; // 헤더정보 출력 if (header) { for (int i = 0; i
-
C# 숫자만 입력되게 하는 방법들닷넷/WinForms 2019. 4. 5. 08:54
금액이나 수량이 입력되는 텍스트박스를 만들 때 숫자가 아닌 것이 입력될 경우 계산에 오류를 주는 등 치명적인 오류가 발생할 수 있다. 그러므로 아예 입력될 때부터 숫자만 입력되게 할 수 있는 방법들에 대해 정리해 보았다. 1) KeyPress 이벤트에서 핸들링 [: 한글 입력은 ProcessKey이기 때문에 KeyPress 이벤트로는 한글 입력을 막지 못한다. 아래 방법 중 한가지를 같이 쓰던가 해야할 것이다.] private void txtPrepay_KeyPress(object sender, KeyPressEventArgs e) { // 숫자와 백스페이스만 입력가능 if (!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) { ..