본문 바로가기

프로그래밍305

MSSQL2008 에서 Select 문 자동 커밋을 막는 방법 SqlConnnectionn [세션] 이 열리고 난 후 아래의 쿼리를 실행 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 하면.. select 문 사이에 lock이 풀리기 때문에 일일이 검사하지 않고 select 를 실행하게 된다. 따라서 속도도 빨라지고, 교착 상태 문제 발생 시 벗어나게 될 수도 있다. 반면에 아직 데이터가 업뎃 되지 않은 상태에서 조회를 해오기 때문에 각 시점의 정확한 데이터를 가져오는데 오차가 발생 할 수 있다. 2010. 7. 27.
MSSQL 백업 및 복원 하기 [코드에서] 쿼리로 해결한다. 백업하는 방법 복원하는 방법 복원시 해당 DB가 사용중이라는 Message가 나오며 진행이 안되는건... 해당 데이터 파일을 사용중이기 때문 따라서 해당 DB에서 데이터 원본을 잠시 떼어주었다가 다시 붙어주는 작업으로 해결 할 수 있다. sp_detach_db 및 어태치는 MSSQL 시스템 저장프로시저인듯.. exec sp_detach_db 'CMSDB', 'true' exec sp_attach_db 'CMSDB', 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS2008\MSSQL\DATA\CMSDB.mdf', 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS2008\MSSQL\.. 2010. 7. 14.
간편간편 열매 먹은 TreeView 검색함수 [재귀호출] //TreeView의 검색 public TreeNode SearchNode(TreeNodeCollection aNodes, string strKey) { foreach ( TreeNode node in aNodes ) { if ( node.Text.Contains(strKey) ) return node; TreeNode findNode = SearchNode(node.Nodes, strKey); if ( findNode != null ) return findNode; } return null; } 2010. 7. 2.
C#과 MFC Socket 통신하기 참조 C#에서 MFC와 통신하기. 통상 편리를 위해 TcpClient를 이용한다. Stream으로 주고 받으려 했으나 이래저래 자꾸 안돼서 tcpClient.Client.Send(btBuf, (int)uLen, SocketFlags.None); 요런식으로 날림.. 2010. 6. 9.
C#에서 byte배열의 해당 길이만큼 가져옴 //byte배열의 해당 길이만큼 가져옴 private static void AssignByteAsLength(out Object outResult, ref int nOffset, byte[] btBuf, uint uLen) { byte[] btTemp = new byte[uLen]; Buffer.BlockCopy(btBuf, nOffset, btTemp, 0, (int)uLen); nOffset += (int)uLen; switch(uLen) { case sizeof(uint): outResult = BitConverter.ToUInt32(btTemp, 0); break; default: outResult = Encoding.ASCII.GetString(btTemp); break; } } 2010. 6. 9.
C#에서의 패킷 디코딩 요령 //패킷 디코딩 public static bool DecodePacket(byte[] btBuf, out uint uCommand, out object oData, out uint uLen) { uCommand = 0; oData = 0; uLen = 0; ASCIIEncoding encoding = new ASCIIEncoding(); int nOffset = 0; Object oResult; //StartCode AssignByteAsLength(out oResult, ref nOffset, btBuf, sizeof(uint)); if ((uint)oResult != STARTCODE) return false; //Session No AssignByteAsLength(out oResult, ref n.. 2010. 6. 9.
DataGridView 사용 팁 17가지 DataGridView 사용 팁 17가지 1. 홀수행을 다른 색으로 보여주고 싶을 때 행마다 특정 배경색을 입혀보고 싶은 분들은 다음과 같이 구현하시면 됩니다. 일단 홀수행을 기준으로 설명하자면 AlternatiogRowsDefaultCellStyle속성에 BackColor를 선언하여 색상을 지정하시면 됩니다. dbView.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua; 2. 여러개의 열이나 행을 선택하지 못하도록 막고 싶을 때 기본적으로 여러개의 열과 행을 선택할 수 있는데 이를 막고 한개의 열이나 한개의 행만 선택하도록 하고 싶을 때 다음과 같이 선언하면 됩니다. dbView.MultiSelect = false; 3. 행단위로 클릭하도록 만들고 싶을.. 2010. 6. 8.
DataGridView에서 DataGridViewComboBoxCell 사용시... Selection을 잘 먹지 않는 경우... 겁나게 찾았는데 요런 해답이... CellClick시 일부러 Control을 Edit 시켜서 현재 에딧 되고있는 컨트롤 정보를 DataGridViewComboBoxEditingControl형식으로 담는다. 고럼 거기엔 DroppedDown이 있음...~ private void dgvPatrolItem_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvPatrolItem.Columns[e.ColumnIndex].Name == "PatrolItem") { dgvPatrolItem.BeginEdit(true); DataGridViewComboBoxEditingControl comboboxEdit = (DataGridViewComboBoxEditin.. 2010. 6. 8.
C#에서의 Socket 통신시 byte배열로 변환하기 [패킷화 하기] public static void SetPacket(uint uCommand, uint uData , ref byte[] btBuf, ref uint uLen) { BitConverter.GetBytes(STARTCODE).CopyTo(btBuf, uLen); uLen += sizeof(uint); BitConverter.GetBytes(SESSIONNO_UNKNOWN).CopyTo(btBuf, uLen); uLen += sizeof(uint); const uint DATALENGTH = sizeof(uint) + sizeof(uint); //CMD + DATA length //btBuf.SetValue(DATALENGTH, sizeof(uint) + uLen); BitConverter.GetBytes(.. 2010. 5. 25.