Local MSSQL 데이터를 MySQL Server로 전송

Local MSSQL 데이터를 MySQL Server로 전송

CSharp, 프로그램
요구사항1. 컴퓨터의 MSSQL 특정 DB table을 MySQL 서버로 전송2. 특정컬럼의 구분자를 구분해서 MySQL로 전송3. 컴퓨터의 MSSQL 데이터를 일정기간 지난후 삭제 하도록 처리4. 프로그램의 실행 시간을 일정시간 간격으로 실행하다록 처리 매번 프로그램을 만들어주는게 간단한것도 있지만 막상 작업을 하다 보면은 손이 많이 가야 하는것이 있습니다. 이번 프로그램도 보기에는 간단한데, 내부적으로 돌아가야 하는 부분은 신경써야 할 곳이 한두곳이 아닙니다. Web API를 만들어서 전송하면은 WebServer에서 담당하면 되지만, 이건 IP가 지정되어서 MySQL 서버가 열러 있어서 해당 프로그램에서 자체적으로 MSSQL, MySQL를 동시에 처리해서 귀찮은 부분이 많았습니다. 일단 일정시간마다 읽어서 모든 Data를 전송하지만, 중복이 되지 않도록 제가 가능한 부분에서 최대한 노력을 하였으며, 현재 한달가 가동현황에서 보면은 문제는 없어 보입니다. 아울러 MSSQL의 데이터를 일정 기간만 유지하도록 Query 문을 사입해서 지우기도 하지 사용하시는분이 이제 편하다는 입장이며 저도 기분이 좋고 사용하시는 분도 좋으니 모든게 잘 풀린 케이스 인듯 합니다.
Read More
Local SQLite의 Table의 내용을 WebServer로 전송

Local SQLite의 Table의 내용을 WebServer로 전송

CSharp, 프로그램
필요사항1. 주기적으로 WebServer로 전송해야함.(단 WebServer에 중복은 방지)2. 각 컴퓨터마다 SQLite 경로가 다르기 때문에 설정이 가능하도록함.3. 각 컴퓨터 구분을 할 수 있도록 함.4. 각 컴퓨터에 일정시간적으로 DB를 읽을수 있도록함.5. 각 컴퓨터 SQLite DB가 Lock이 걸리니 복사해서 사용하도록함. 이상이 5가지 사항을 가지고 만든것이며, 약 일주일 정도 지났지만 문제없이 사용을 하고 있다고 합니다. 생각보다 적은 양의 코딩을 해서 만들었지만 알차게 만든듯 합니다.
Read More
C# SQLite 설치해서 사용하기

C# SQLite 설치해서 사용하기

Database
메뉴 -> 도구 -> Nuget패키지 관리자 > 패키지 관리자 콘솔 "install -Package System.Data.SQLite SQLite 기능을 쓰기 위해서 추가적으로 설치해야 되는 사항입니다. 해당 사항을 설치하고 나면서 빌드할 경우에 x86, x64 폴더가 포함되며, 해당 기능도 같이 있어 다른 컴퓨터에서 사용할 수 있을 것이라고 사료 됩니다.
Read More
c# 에러 출력 예외 설정

c# 에러 출력 예외 설정

CSharp
VS -> 디버그 -> 창 -> 예외설정 -> ContextSwitchDeadlock 체크 해제 << 에러내용 >> CLR에서 60초 동안 COM 컨텍스트 0x1a18b8에서 COM 컨텍스트 0x1a1a28(으)로 전환하지 못했습니다.  대상 컨텍스트/아파트를 소유하는 스레드가 펌프 대기를 수행하지 않거나, Windows 메시지를 펌프하지 않고 매우 긴 실행 작업을 처리하고 있는 것 같습니다. 이러한 상황은 대개 성능에 부정적인 영향을 주며 응용 프로그램이 응답하지 않거나 시간이 흐름에 따라 메모리 사용이 증가하는 문제로 이어질 수도 있습니다. 이 문제를 방지하려면 모든 STA(Single Threaded Apartment) 스레드가 펌프 대기 기본 형식(예: CoWaitForMultipleHandles)을 사용하고 긴 실행 작업 동안 지속적으로 메시지를 펌프해야 합니다
Read More

[C#] HTML 에서 Text만 추출

CSharp
/// <summary> /// HTML 에서 Text만 추출한다. /// </summary> /// <param name="Html"></param> /// <returns></returns> public static string StripHtml(string Html) { string output = Html; output = System.Text.RegularExpressions.Regex.Replace(output, "<br>", Environment.NewLine); output = System.Text.RegularExpressions.Regex.Replace(output, "<br/>", Environment.NewLine); output = System.Text.RegularExpressions.Regex.Replace(output, "<br />", Environment.NewLine); //get rid of HTML tags output = System.Text.RegularExpressions.Regex.Replace(output, "<[^>]*>", string.Empty); //get rid of multiple blank lines output = System.Text.RegularExpressions.Regex.Replace(output, @"^\s*$\n", string.Empty, System.Text.RegularExpressions.RegexOptions.Multiline); output = System.Text.RegularExpressions.Regex.Replace(output, " ", " "); return output; }
Read More

C# serial communication

CSharp
using System; //using OpenNETCF.IO.Ports; using System.IO.Ports; namespace ConsoleApp1 { class Program { static void Main(string[] args) { SerialPort port = new SerialPort("COM43", 115200, Parity.None, 8, StopBits.One); port.Open(); System.Threading.Thread.Sleep(1000); // waiting for Arduino reset for (int i = 0; i < 1000; i++) { Console.WriteLine(port.BytesToRead); // it write on the console only zeros, so no data is received System.Threading.Thread.Sleep(100); } port.Close(); } } }
Read More

[C#] webBrowser 에 HTML 또는 URL로 바로 가기

CSharp
[C#] webBrowser 에 HTML 또는 URL로 바로 가기 로컬 파일을 읽어 들여서 웹브라우저에 바로 표시 할 수 있습니다.알면 편하고 빠르게 할 수 있지만 모르면은 헤매일수 있기에 간단히 기록만 해 둡니다. # 소스파일로 표시하기webBrowser1.DocumentText = HTMLSource; #URL 로 가기webBrowser1.Navigate(URL);
Read More