목록program/c# (22)
yoursyun
DataTable dtSource; // 데이터베이스에서 조회한 임의의 데이터 테이블 구조를 복사 DataTable dtTarget = dtSource.Clone(); // ABC 컬럼이 0보다 적은 데이터 ROW 추출 DataRow[] rowArray = dtSource.Select("abc < 0"); // 구조가복제된데이터테이블에 데이터 row정보를 삽입. foreach (DataRow row in rowArray) dtTarget.ImportRow(row);
decimal a = 1000000.5m; double b = 1000000.5; int c = 1000000; Console.WriteLine(a.ToString("#,###")); Console.WriteLine(b.ToString("#,###")); Console.WriteLine(c.ToString("#,###")); 본화면과 같은 순서로 출력되는데, 주의사항은 decimal, double 의 경우 캐스팅 되어지며, 반올림이 일어난다.
Delegate ( 대리자 ) 1. callback method 의 구현시 이용 할 수 있다. 2. 메서드를 연속으로 실행 시켜야 할시 이용 할 수 있다. - Delegate chain3. 메서드를 대신 실행한다. 정도의 의미로 이해하고, 다른 메서드를 파라메터로 넘기거나,이벤트와 함께 사용하여, Delegate 가 할당연산자 ( = ) 으로 초기화 되는것을 막아 이용 할 수도 있다.이벤트 = 델리게이트 로 이해 하는것도 나쁘지 않다. 1. callback method 의 구현시 이용 할 수 있다. ================================================================= callback method 란 ? A method, B method, C method ...
클래스 라이브러리 프로젝트 설정 1. 참조 > 어셈블리 > 프레임워크 System.EnterpriseService 추가 2. AssemblyInfo.cs 에서 어셈블리를 COM에 노출AssemblyInfo.cs파일을 열고 [assembly: ComVisible(true)] 로 변경 3. 작업 클래스에 assembly 지시자 등록 및 : ServicedComponent 상속using System.EnterpriseServices; [assembly: ApplicationName("T_REST_API_HELLO")][assembly: Description("T_REST_API_HELLO hello print")][assembly: ApplicationActivation(ActivationOption.Serv..
byte[] r = new byte[100]; System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(r);
1. DLL 을 GAC 에 등록 - gacutil 위치에서 ( c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin- 등록 gacutil /i C;\inetpub\wwwroot\xxx\Bin\xx.dll 2. DLL 을 COM 에 등록- c:\windows\Microsoft.NET\Framework\v2.0.50727 경로에 등록하려는 DLL 복사- 등록 regasm XX.dll /tlb:XXtlb
윈도우 종료 : System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -s -f -t 00");원도우 재부팅 : System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -r -f -t 00");특정폴더 열기: System.Diagnostics.Process.Start("explorer.exe","C:\Temp”);특정사이트열기 : System.Diagnostics.Process.Start(“explorer.exe”, “http://www.naver.com”);도스명령어 실행 : System.Diagnostics.Process.Start(“cmd.exe”, “*/c dir”);
decimal um_prod = 150.5m;// 원단위 반올림 um_prod = Math.Round(um_prod / 10) * 10;// 원단위 버림 um_prod = Math.Truncate(um_prod / 10) * 10;// 원단위 올림 // um_prod = Math.Ceiling(Math.Truncate(um_prod) / 10) * 10;잉 ~ 이럼 안대나 ?
IIS 서버를 활용하여 .net 리모팅을 이용한 분산 응용프로그램 개발.서버를 만들어서 작업 할 수 도 있지만, 방화벽 설정과 포트설정등 설정이 귀찮고 (서버가 이사를 간다던가... ), 서버를 만들면 서비스에 올려 놔야 맘편히 살수 있기 때문에 IIS를 이용하여 작업 하는것이 여러모로 편해 보인다.1. IIS 서버에 응용프로그램을 만든다. 2. 만들어진 응용프로그램 폴더에 web.config 파일을 넣는다.Web.config ============================================================================= [[ Web.config =======================================================..
COM+ 극 초보 입장으로 ~ 1. sn -k 프로젝트명.snk VS 명령프롬프트에서 강력한 이름을 갖게 하기 위해 실행 ( 응 ? 이 의미는 프로젝트 파일을 빌드 후 특정 system에 해당 COM+ 설치시 똑같은 짓을 하라는 ! ) 2. COM+ 사용될 프로젝트 속성에서 "서명"탭 선택 어셈블리 서명 체크 아까 만든 강력한 이름 키파일 선택 3. 프로젝트를 build 후 프로젝트 라이브러리 생성된 폴더로 이동 ( bin/Debug ) regsvcs 프로젝트명.dll 작업시 설치 되었다는 메시지가 나온다면, "프로젝트명.tlb" 파일 생성 4. regedit (레지스터 편집기), 구성요소서비스 > COM+응용프로그램에 등록 되었다면 정상적으로 처리 됨. 5. COM+ 를 사용하고자 하는 프로젝트에서 참..
.NET에서 클래스 라이브러리(dll) 형태로 개발. COM 서비스에 등록(RegAsm.exe) 다른 언어 혹은 .NET 에서 이를 인스턴스 화 하여, 해당 서비스를 이용한다. 간단하게 1 SYSTEM 에 특정언어로 ( C, C++, C# 등등 ) 으로 라이브러리를 개발 하여 설치하고, 어떤 언어던지 COM 으로 등록된 오브젝트를 참조하여, 개발 하기 위해 사용 한다. 뭐 네트워크를 통한 공유 라이브러리 라던지 뭐 그런 형식을 DCOM 에서 사용 하는것 같은데 현재로선 DCOM 개발 방식 보다, .Net Remoting 방식으로 개발 하는것을 추천 하는것 같다. 1. Class library 생성 2. RegAsm 을 사용 COM 서비스 등록 3. TlbExp 을 사용 .NET 환경..
string nameSpace = "네임스페이스"; string nameForm = "폼이름"; Assembly ab = Assembly.GetExecutingAssembly(); Form frm = (Form)ab.CreateInstance(string.Format("{0}.{1}", nameSpace, nameForm) , false , BindingFlags.CreateInstance , null , new object[] { "안녕 ?" } // 생성자 매개 변수 등이 있다면 여기에 ... , null , null); frm.Show(); CreateInstance 메서드 파라메터는 MSDN 이나 구글 참조 하시길...
Delegate 를 통하여 폼간의 이벤트 제어를 하는 법. 시나리오 부모 폼에서 이벤트를 발생하여, 자녀 폼의 이벤트를 실행. 아래 예제는 간단한 문자열을 부모폼에서 넘겨 자녀의 레이블에 출력 하는 예제. 부모Form 클래스 { // delegate 이벤트선언 public delegate void FormSendDataHandler(string data); public event FormSendDataHandler FormSendEvent; void btn_Click(object sender, EventArgs e) { this.FormSendEvent("부모폼에서 버튼을 클릭하였습니다."); } void 자녀폼열기_Click(object sender, EventArgs e) { Form2 f2 = ne..
문자열을 숫자로 : Convert.ToInt32("문자열"); 소숫점이하 반올림 : Math.Floor(숫자); 소숫점이하 버림 : Math.Truncate(숫자); 소숫점 3자리 이하 버림처리 decimal d = -0.0035m; d = Math.Truncate(d * 1000) / 1000; 2자리는 1000 을 100 으로 변경한다.
Active Directory 서버 LDAP 로 사용자 계정 추가하기 * DN 구문 예제 : "LDAP://컴퓨터IP 및 이름/OU=조직구성단위,DC=도메인,DC=com(도메인종류)" DirectoryEntry de = new DirectoryEntry(DN구문); de.Username = AD 서버 로그인 계정; de.Password = AD 서버 로그인 암호;NewUser = de.Children.Add(string.Concat("CN=", userNm), "user"); NewUser.Properties["sAMAccountName"].Value = 사용자로그인계정아이디; NewUser.Properties["userPrincipalName"].Value = 사용자로그인계정아이디. xxx@xxx.co..
DataTable - LEFT OUTER JOINusing System.Linq; var query = from o in LeftTable.AsEnumerable() // 부모테이블 join e in RightTable.AsEnumerable() // 자녀테이블 on (string)o["logon_cd"] equals (string)e["adlogon_cd"] into gj // 비교 하고자 하는 key 값 from adList in gj.DefaultIfEmpty() // 비교 key null 체크 : 이걸 빼버리면 inner join 결과를 얻을 수 있습니다. select new // 결과 집합을 query 변수에 생성 : 여기서 값을 가공 할수 있습 니다. { logon_cd = (string)o[..
DataTable 데이터 = new DataTable(); 데이터.Columns.Add("컬럼명"); DataRow 데이터의행; 데이터의행 = 데이터.NewRow(); 데이터의행["컬럼명"] = "임의의 데이터 입력"; 데이터.Rows.Add(데이터의행); 끗.
숫자값.ToString().PadLeft(3, '0'); // 3자리를 기준으로 0 값을 채워라
DateTime to "YYYYMMDD"
for (int i = 0; i DataRow findRow = ObjectDataSet.Tables[pcode].Rows.Find(findCode); findRow[컬럼명].toString();