C#
-
C# 네이버 블로그 파싱하는 방법닷넷/C# 2017. 7. 21. 16:22
진짜 네이버 블로그 소스는 프레임에 씌여있어서 네이버 블로그를 파싱하려면한 꺼풀 벗겨서 다시 한번 웹페이지를 불러와야한다. 1. 윈폼에 도구상자에서 WebBrowser 두 개를 놓는다. 2. 일반적인 네이버 블로그 url를 webBrowser1에 띄운다.webBrowser1.Navigate("http://blog.naver.com/freecat27"); 3. webBrowser1의 DocumentCompleted 이벤트에서 프레임에 씌여진 진짜 네이버 블로그 주소를 파싱하고, webBrowser2에 그 주소를 띄운다.private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){ if (e.U..
-
C# 엑셀파일로 저장할 때 셀병합, 자동정렬, 선, 가운데 정렬닷넷/C# 2017. 6. 26. 18:18
C#에서 엑셀파일로 저장할 때 셀 병합, 자동정렬, 테두리 그리는, 가운데정렬 하는 방법 //소스코드 Excel.Range range = null; range = xlWorksheet.get_Range("A2", "I2"); // 범위지정 range.Merge(true); // 범위만큼 셀 병합 range.Font.Size = 14; // 글씨크기 range.Font.Underline = true; // 밑줄 range.Font.Bold = true; // 굵게 range = xlWorksheet.get_Range("A3", "I3"); // 새로 범위지정 range.Merge(true); // 범위만큼 셀 병합 // 새로 범위지정 후 range = xlWorksheet.get_Range("A3", "I..
-
C# 리소스 파일 관련 참고 자료 사이트 링크닷넷/C# 2017. 5. 30. 16:01
1. 리소스에 포함된 데이터 읽고 쓰기http://devilchen.tistory.com/4720 2. MSDN : 데스크톱 응용 프로그램용 리소스 파일 만들기https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiIg4-M-5bUAhWCUZQKHcWAA5QQFggkMAA&url=https%3A%2F%2Fmsdn.microsoft.com%2Fko-kr%2Flibrary%2Fxbx3z216(v%3Dvs.110).aspx&usg=AFQjCNE_5T_aJ7zqAYUAFJAVOw0jQIr0wQ&sig2=rR-FtEw5kGJR6uowJlB8BA
-
C# DataGridView 데이터 엑셀파일에 저장 using oledb닷넷/C# 2017. 5. 24. 13:43
엑셀 라이브러리 참조없이 OleDb를 이용한 방법으로 DataGridView의 데이터를 엑셀로 출력하는 방법이다.이때, 엑셀파일을 File 을 이용해 생성하면 제대로 생성되지 않아 사용할 없다.따라서 소스를 보면 알겠지만 엑셀파일 하나를 복사해서 거기에 데이터를 저장하는 편법을 이용했다. OleDbConnection conn = null; try { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel File(.xls)|*.xls"; if (sfd.ShowDialog() == DialogResult.OK) { FileInfo fi = new FileInfo(sfd.FileName); if (!fi.Exists) { File.Copy(Applic..
-
C# 엑셀파일 가져오기 using OleDb닷넷/C# 2017. 5. 22. 09:57
OleDb를 이용하면 컴퓨터에 엑셀이 설치되어있지 않아도, 엑셀 라이브러리를 참조하지 않아도엑셀의 데이터를 가져올 수 있다.만약 안 된다고 하면 provider가 설치되어 있지 않아 그런 것이니 AccessDatabaseEngine을 설치하면 된다. using System.Data.OleDb; private DataTable GetSheet(string excelPath) { string connstring = string.Empty; if (excelPath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의 { connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelPath + ";Extended Pr..
-
C# 프로그램 실행 중복방지닷넷/WinForms 2017. 4. 26. 17:24
Program.cs 파일에int thisID = System.Diagnostics.Process.GetCurrentProcess().Id; // 현재 기동한 프로그램 id // 실행 중인 프로세스 중에서 현재 기동한 프로그램과 같은 이름을 가진 프로그램 수집System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("Process Name"); if (p.Length > 1){ for (int i = 0; i
-
C# DB에 이미지가 16진수로 저장되어 있을 때닷넷/C# 2016. 12. 7. 09:54
텍스트 파일에 저장되어 있는 것보다 간단하다.connection 부분과 command 부분은 뺐습니다. conn.Open(); SqlDataReader reader = comm.ExecuteReader(); byte[] bImage = null;while (reader.Read()){ bImage = (byte[])reader["Picture"]; // 이미지가 hex string으로 저장되어 있는 칼럼명} if (bImage != null){ pictureBox1.Image = new Bitmap(new MemoryStream(bImage));}reader.Close();conn.Close();Colored by Color Scriptercs
-
C# hex string to image닷넷/C# 2016. 12. 7. 09:46
이미지가 텍스트 파일로 저장되어 있고, 그 데이터가 16진수라면그 파일을 읽어서 PictureBox에 불러 오는 방법. 지식인에 답변한 거에서 아주 조금 다듬음. - 이벤트에 작성 OpenFileDialog ofd = new OpenFileDialog(); // 파일열기if (ofd.ShowDialog() == DialogResult.OK){ string fileName = ofd.FileName; string imgtxt = System.IO.File.ReadAllText(fileName); // 텍스트파일내용 가져오기 Byte[] data = HexString2Bytes(imgtxt.Substring(2)); //string 형식인 데이터의 형식을 바이트로 바꾸기 // 참고로 16진수를 나타내는 0x..
-
C#에서 MDB(MS Access) 파일 압축하기닷넷/C# 2016. 10. 11. 12:19
먼저 참조추가에서 COM 탭에 있는 Microsoft Jet and Replication Objects 2.6 Library를 추가한다. JRO.JetEngineClass jro = new JRO.JetEngineClass(); jro.CompactDatabase("Provider=Microsoft.jet.OLEDB.4.0;Data Source=압축할MDB", "Provider=Microsoft.jet.OLEDB.4.0;Data Source=압축후MDB"); 만약 Interop 형식 'JRO.JetEngineClass'을(를) 포함할 수 없습니다. 적용 가능한 인터페이스를 대신 사용하십시오. 같은 오류가 발생하면 1. 참조에 JRO를 클릭하거나 오른쪽 마우스로 클릭하여 속성창을 띄운다. 2. 속성창에 [..
-
C# 레지스트리 읽기, 쓰기닷넷/C# 2016. 9. 22. 13:36
using Microsoft.Win32; // 레지스트리 읽기 public string getReg(string regName) { RegistryKey reg = Registry.LocalMachine; reg = reg.OpenSubKey("Software\\Your Program Name", true); string regData = ""; if (reg == null) regData = ""; else regData = Convert.ToString(reg.GetValue(regName)); return regData; } // 레지스트리 쓰기 public void setReg(string regName, string regData) { RegistryKey reg = Registry.LocalM..
-
C# mdb, accdb 연결 방법닷넷/C# 2016. 9. 22. 13:03
using System.Data.OleDb; // mdb인 경우OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mdb파일;"); // accdb 경우OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=accdb파일;Mode=ReadWrite;");
-
C# MSSQL 저장프로시저 호출 및 반환값 가져오는 방법닷넷/C# 2016. 9. 1. 18:30
다음은 구글링 하니 C#에서 MSSQL의 저장프로시저를 사용하는 방법이라고 나온 것이다. SqlCommand cmd = new SqlCommand("저장프로시저이름", conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("@변수이름", SqlDbType.변수타입) = 데이터; 간단하게SqlCommand cmd = new SqlCommand("EXEC 프로시저명 값1, 값2", conn);cmd.ExecuteNonQuery();이렇게 써도 된다. 그런데 저장 프로시저에 SELECT가 있어서 반환값을 가져 올 수 있는 경우단순히 Command를 사용하면 되지 않는다. 이때는 Adapter와 DataTable를 이용하면 된다. SqlD..
-
C# 윈폼에서 같은 컨트롤들을 한번에 제어하는 방법닷넷/WinForms 2016. 8. 18. 16:51
예를 들면 폼에 있는 모든 TextBox의 Text를 지울 때 다음과 같이 작성한다. foreach (Control c in this.Controls) { TextBox tb = c as TextBox; if (tb != null) { tb.Text = ""; } } 즉, // 컨트롤이 메인폼에 있을 때 foreach (Control c in this.Controls) { 컨트롤 tb = c as 컨트롤; if (tb != null) { // 작업 } } // 컨트롤이 그룹박스에 있을 때 foreach (Control c in groupBox1.Controls) { 컨트롤 tb = c as 컨트롤; if (tb != null) { // 작업 } }
-
C# 폴더와 텍스트파일(txt, log 파일 등) 생성, 글쓰기, 저장닷넷/C# 2016. 8. 18. 15:25
using System.IO 해당 폴더가 있는지 없는지 확인하고 없으면 폴더를 생성하는 코드는 다음과 같다.DirectoryInfo dtif = new DirectoryInfo("폴더 위치");if (!dtif.Exists){ dtif.Create();} 다음은 해당 파일이 있는지 없는지 확인하고 없으면 파일을 생성하는 코드이다.보통 텍스트파일, ini 파일, log 파일 등등을 생성할 때 쓰임. 첫 번째 방법,이 방법은 파일을 생성하고 나서 이 파일을 사용하고자 할 때파일닫기가 없기때문에 해당 파일에 액세스 할 수 없는 오류가 발생한다. if (!File.Exists(Application.StartupPath + "\\test\\test.txt")){ File.Create(Application.Star..