퇴근5분전

페이징 컨트롤러를 만들었던것을 올림.

invalid-file

cs파일

invalid-file

ascx파일


개선 할점 : 흠 사용할때 좀 복잡했던것으로 기억함.( 디자인모드에서 이벤트 등록이 안됨 )

   protected void Page_Load(object sender, EventArgs e)
    {
        PageNavigator1.PageClick += new ClickEvent(PageNavigator1_PageClick);
       
    }

    void PageNavigator1_PageClick(PageEventArgs e)
    {
        throw new Exception("The method or operation is not implemented.");
    }

이렇게 페이지마다 등록해서 썼던걸로 기억함.

이 프로그램은 SBS 전자자막의뢰 웹사이트 구축시 만들어 사용하던 프로그램으로

DB와 연동시켜 DB프로시져를 자동생성하고 생성된 프로시져를 통해서

비지니스레이어부분을 자동생성처리 하는 프로그램임.

장점 : 반복되는 비지니스 레이어를 손쉽게 1분안에 만들어낼수 있는 것으로 작업시간을 줄일수 있음.


사용자 삽입 이미지
                              << 테이블 정보를 가져와 프로시져를 생성한 모습 >>

사용자 삽입 이미지
                                          << 프로시져 정보를 가져온 모습 >>

1. 캡슐화 할 클래스명과 기능명을 입력 후
2. 코드 만들기를 누르면 비지니스처리 코드와 비지니스 코드를 실제 이용하는 로직에 대한
코드까지 가져옴.

<< 만들어진 코드 >>
/* BSL 구현에서 반복작업을 줄이기 위해 만들어내는 코드임( 버그 주의 ) */
using FrameWork.DB.DAC;
using System.Data.SqlClient;

namespace FrameWork.DB.BSL
{
 public class _TempClassName_ : ValidateQuery, IDisposable
 {

  public bool _TempMethodName_(params object[] objParams)
  {
   bool returnValue  = false;

   try
   {
    using (DataAccess dac = new DataAccess())
    {
     SqlParameter[] sqlparams = new SqlParameter[objParams.Length];
     sqlparams[0] = new SqlParameter("@Num", SqlDbType.Int);
     sqlparams[1] = new SqlParameter("@T1", SqlDbType.NChar,10);
     sqlparams[2] = new SqlParameter("@T2", SqlDbType.NChar,10);
     sqlparams[3] = new SqlParameter("@T3", SqlDbType.NChar,10);
     sqlparams[4] = new SqlParameter("@T4", SqlDbType.NChar,10);

     for(int cnt  = 0; cnt < objParams.Length ; cnt++)
     {
      this.Validate(sqlparams[cnt].SqlDbType, objParams[cnt]);
      sqlparams[cnt].Value = (objParams[cnt] == null ? DBNull.Value : objParams[cnt]);
     }

     returnValue = dac.TransactionProcedure("UP_Table_1_REGISTER", sqlparams);
    }
   }
   catch(Exception exception)
   {
    throw exception;
   }
   return returnValue;
  }

  public void Dispose()
  {
   // throw new Exception("The method or operation is not implemented.");
  }
 }
}

<< cs 에서 Bsl을 사용하는 코드 >>

/* .cs내에 사용하는 메서드 내부에서 사용하는 코드임.*/
public void _TempMethodName_()
{
 try
 {
  using(FrameWork.DB.BSL._TempClassName_ _tempclassname_1 = new FrameWork.DB.BSL._TempClassName_())
  {
   object[] UserParam = new object[5];

   UserParam[0] = DBNull.Value;  //@Num
   UserParam[1] = DBNull.Value;  //@T1
   UserParam[2] = DBNull.Value;  //@T2
   UserParam[3] = DBNull.Value;  //@T3
   UserParam[4] = DBNull.Value;  //@T4

   if (_tempclassname_1._TempMethodName_(UserParam) == false)
   {
    ErrorMessage = "실패했습니다.";
   }
   else
   {
    //성공후 이뤄지는 처리
   }
  }
 }
 catch(Exception ex)
 {
  ErrorMessage = ex.Message;
 }
}

}

'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글

판넬 슬라이드 애니메이션  (0) 2009.05.01
데이타베이스 브라우져 ver3  (0) 2009.05.01
다각형 내부 클릭 체크.  (0) 2009.05.01
유저컨트롤-[도구모음]  (0) 2009.05.01
이미지뷰어!  (0) 2009.05.01

간단하게 바둑판으로 그려줌.
테이블형태의 데이타를 프린트 출력하거나 이미지로 그려낼때 사용하면 좋음.

int _Width = 100;

for( int loop = 0; loop < 5; loop++)
{
    for(int loop2 = 0; loop2 < 4; loop2++)
    {
       graphics.DrawRectangle(Pens.Yellow, (loop * _Width), (loop2 * _Width), _Width, _Width);
    }
}

사용자 삽입 이미지

'# 2) .Net ( Vs 2005 )' 카테고리의 다른 글

Vs 2008 처리...  (0) 2009.10.20

Vs2005 에서 보면 왼쪽 도구모음 컨트롤을 만들어본것임.

사용자 삽입 이미지


우선 BoxItem을 유저 컨트롤로 만듬

사용자 삽입 이미지
{ 구성 }
   판넬, 픽쳐박스, 라벨

BoxItem을 담을 Box를 만듬.
사용자 삽입 이미지

데이타가 추가되면
Box에 판넬에 BoxItem을 추가해줌.


--> BoxItem 클릭에 대해서는 BoxItem에 클릭 이벤트를 델리게이트를 통해
Box에 처리를 미뤄줌.

'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글

판넬 슬라이드 애니메이션  (0) 2009.05.01
데이타베이스 브라우져 ver3  (0) 2009.05.01
다각형 내부 클릭 체크.  (0) 2009.05.01
프로시져 생성기  (0) 2009.05.01
이미지뷰어!  (0) 2009.05.01

사용자 삽입 이미지

훈스 닷넷에서 질문올라온것을 살짝 작성해본 것임.

// 소스!
public partial class Form1 : Form
    {
        string DirectoryPath = string.Empty;
        int Index = 0;

        public Form1()
        {
            InitializeComponent();
        }

        #region  이전
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            이전();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            이전();
        }

        void 이전()
        {
            검색(-1);
        }
        #endregion
        #region  다음

        private void button2_Click(object sender, EventArgs e)
        {
            다음();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            다음();
        }
        void 다음()
        {
            검색(+1);
        }
        #endregion


        void 검색(int  ImageIndex )
        {        
            this.Index += ImageIndex;

            if (Index < 0)
                Index = 0;
            else if (Index > listBox1.Items.Count - 1)
                Index = listBox1.Items.Count - 1;


            if (this.listBox1.Items.Count > 0 )
            {               
                this.pictureBox1.ImageLocation = string.Format("{0}\\{1}",DirectoryPath, listBox1.Items[Index].ToString());
                this.listBox1.SelectedIndex = this.Index;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {// 디렉토리 설정 및 파일리스트 로딩.

            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                this.textBox1.Text = DirectoryPath = folderBrowserDialog1.SelectedPath;

                string[] fileNames = System.IO.Directory.GetFiles(DirectoryPath);

                listBox1.Items.Clear();

                foreach (string fileName in fileNames)
                {
                    listBox1.Items.Add(fileName.Replace(DirectoryPath, ""));
                }
            }
    

        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.Index = listBox1.SelectedIndex - 1 ;
            검색(+1);
        }

    }



'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글

판넬 슬라이드 애니메이션  (0) 2009.05.01
데이타베이스 브라우져 ver3  (0) 2009.05.01
다각형 내부 클릭 체크.  (0) 2009.05.01
프로시져 생성기  (0) 2009.05.01
유저컨트롤-[도구모음]  (0) 2009.05.01