닷넷
-
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..
-
C# ini 파일 읽고 쓰기닷넷/C# 2016. 8. 18. 11:23
ini 파일은 Config 파일이나 데이터 파일을 만들때 주로 사용하는 확장자이며 파일이다. C#에서 ini파일을 어떻게 생성하고 데이터를 어떻게 저장하는지, 또 어떻게 읽는지 알아보자. 제일 먼저 InteropServices 지시문 추가 using System.Runtime.InteropServices; namespace MyNameSpace { class MyClass { // ini 파일을 불러올 때 사용되는 함수 [DllImport("kernel32")] private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, i..
-
C# 현재위치(경로) 가져오는 방법닷넷/C# 2016. 8. 16. 17:32
출처: http://rocabilly.tistory.com/114적어 놓은 게 있었는데 없어져서,다시 작성하려고 했으나 잘 정리된 글이 있어서 퍼옴. 1. Application.StartupPath - 현재 application이 존재하는 경로- winform 인 경우에만 사용가능- 레지스트리 관계없이 실제 실행 파일- Application.ExcutablePath 와 동일- string filePath = Application.StartupPaht + @"\\testFile.txt"; 2. System.Environment.CurrentDirectory - 현재 작업 실행되는 경로- winform 이외의 개발 환경에서도 사용가능- winform 에서는 "C:\Windows\System32" 경로가 나옴..
-
C# 컨트롤 사이즈에 맞춰서 폰트 크기 자동조절닷넷/WinForms 2016. 8. 12. 17:12
Label로 예를 들면 속성 중에 Autosize를 true로 하면 폰트 크기에 따라서 Label의 크기가 달라지는데 반대로 Autosize를 false로 하고, Label의 사이즈에 따라서 글씨 크기를 조절하는 방법은 다음과 같다. public Font AutoFontSize(Label label, String text) { Font ft; Graphics gp; SizeF sz; Single Faktor, FaktorX, FaktorY; gp = label.CreateGraphics(); sz = gp.MeasureString(text, label.Font); gp.Dispose(); FaktorX = (label.Width) / sz.Width; FaktorY = (label.Height) / sz..
-
C# 폼 이동 방법닷넷/WinForms 2016. 7. 19. 18:53
폼의 타이틀을 없앴거나 타이틀 외에도 다른 부분을 클릭해서 폼을 움직이게하고자 한다면아래와 같이 코딩하면 된다. private bool onDrag = false; private Point point0; private void frmMain_MouseDown(object sender, MouseEventArgs e) { this.onDrag = true; this.point0 = new Point(e.X, e.Y); } private void frmMain_MouseMove(object sender, MouseEventArgs e) { if (this.onDrag == false) return; int x0 = this.Location.X; int y0 = this.Location.Y; int dx = ..
-
C# WindowsForm에서 배경 투명하게 하는 방법닷넷/WinForms 2016. 7. 19. 18:21
WindowsForm의 특정부분만 투명하게 하는 방법은폼 속성의 TransparencyKey을 이용하면 된다. 예를 들어 FormBorderStyle을 None으로 하고 배경이미지를 넣었을 경우에 아래와 같이 이미지 외의 배경이 폼색으로 되는데 이 것을 투명하게 해주려면 폼 속성에서 BackColor와 TransparencyKey를 같은 색상으로 맞추면 된다. 이 외에 특정영역만 투명하게 하고자 한다면 레이블이나 패널등을 이용해레이블 또는 패널의 BackColor 속성과 폼의 TransparencyKey 속성을 같은 색상으로 해주면 된다.