프로그래밍/C#
-
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. 26. 18:01
내가 갖고 있는 바이너리 파일의 구조는 처음 4바이트는 정수고, 그 다음부턴 문자열로 되어있다.하나의 문자열엔 \t, \0, \n 등등으로 값이 나뉘어져 있기도 하다.거기서 필요한 값만 얻어올 수 있도록 코딩하였다. using System.IO; public class clsConfig { public int ltype { get; set; } public string mdbpath { get; set; } public string sqlserver { get; set; } public string sqldatabase { get; set; } public string sqluserid { get; set; } public string sqlpassword { get; set; } } public cls..
-
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# 프로그램 실행 중복방지프로그래밍/C# 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# FTP 연결 확인 및 파일 다운로드프로그래밍/C# 2017. 1. 10. 14:56
using System.Net; private ftpConn(){ try { FtpWebRequest ftpre = (FtpWebRequest)WebRequest.Create(string.Format("ftp://{0}/{1}", txtFTP_Host.Text.Trim(), txtFTP_File.Text.Trim())); ftpre.Method = WebRequestMethods.Ftp.ListDirectory; ftpre.Credentials = new NetworkCredential(txtFTP_UID.Text.Trim(), txtFTP_PWD.Text.Trim()); ftpre.GetResponse(); } catch { //Exception }} private void ftpDownload(){ ..
-
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# 윈폼에서 같은 컨트롤들을 한번에 제어하는 방법프로그래밍/C# 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) { // 작업 } }