본문 바로가기

카테고리 없음

SMART FACTORY - C#200제 WINDFORM

반응형

3rd - party - company

 

https://www.telerik.com/products/winforms.aspx

https://www.devexpress.com/support/demos/

https://www.jetbrains.com/ko-kr/resharper/download/download-thanks.html?code=RSU&platform=windows

 

ReSharper를 다운로드해 주셔서 감사합니다

Visual Studio 2019, 2017, 2015, 2013, 2012, 2010용 생산성 및 코드 리팩토링 플러그인. C#, XAML, ASP.NET, ASP.NET MVC, JavaScript, TypeScript, VB.NET 및 빌드 스크립트 지원

www.jetbrains.com

위의 사이트에서 이쁘게 만들수 있다. 근대 비싸

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ChartControlApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Using Chart Control";

            // 10명의 학생 랜덤 점수 생성 및 차트 바인딩
            Random random = new Random();
            chart1.Titles.Add("중간고사 성적");
            for (int i = 0; i < 10; i++)
            {
                chart1.Series["Score"].Points.Add(random.Next(10, 100));
            }
            chart1.Series["Score"].LegendText = "수학점수";
            chart1.Series["Score"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
        }
    }
}

 

namespace ChartControlApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Using Chart Control";

            // 10명의 학생 랜덤 점수 생성 및 차트 바인딩
            Random random = new Random();
            chart1.Titles.Add("중간고사 성적");
            for (int i = 0; i < 10; i++)
            {
                int valure = random.Next(10, 100);
                chart1.Series["Score"].Points.Add(valure);
                chart1.Series["Score"].ToolTip = valure.ToString();
            }
            chart1.Series["Score"].LegendText = "수학점수";
            chart1.Series["Score"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            chart1.Series["Score"].ToolTip = "테스트";
        
        } // 로직을 이해하면 된다 !!!!!!!! 제발 ㅡㅡ

        private void button1_Click(object sender, EventArgs e)
        {
            chart1.Series["Score"].Points.Clear();
            MessageBox.Show("데이터를 지웠습니다.", "처리", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}

dll -> 윈 폼 땡하고 만들어주는 아주 좋은 친구 

 

참조-> 참조 추가 -> 어셈블리에서 system.web.forms 이것만 찾으면 됨

 

서드 파티 컴퍼니에서 제공하는 프리 누겟 페키지

 

 

클리어 버튼을 눌렀을때 만약 메트로가 적용 안된다면 MessageBox 앞에 일단 Metro를 붙여본다 오류가 날꺼다 

이경우 alt + enter 를 눌러서 using 을 생성해주고 누구의 명령어인지 this를 넣어주면 실행된다 개짱난다 그냥 외우자 

 

 

sdi

mdi

 

 

중요!!! 디비 연결하는 방법

 

namespace BookRentalShop20
{
    public partial class LoginForm :MetroForm
    {
        public LoginForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 캔슬버튼 클릭이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            //Application.Exit(); //단점이 있다 정확하게 해제가 안되는 경우가 있다.
            Environment.Exit(0); // 0 false 에러가 없다 -> 정상적인 종료 1 true 에러가 있다. 
        }
        /// <summary>
        /// 로그인 처리버튼 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOk_Click(object sender, EventArgs e)
        {
            LoginProcess();
        }

        private void TxtUserID_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar ==13) //엔터
            {
                TxtPassword.Focus();
            }  
        }

        private void TxtPassword_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == 13)
            {
                LoginProcess();
            }
        }

        private void LoginProcess()
        {
            throw new NotImplementedException(); //throw 예외 처리 구현이 안된 에러처리
        }
    }
}

namespace BookRentalShop20
{
    public partial class MainForm : MetroForm
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            LoginForm loginForm = new LoginForm();
            loginForm.ShowDialog();
        }
    }
}

서버탐색기를 통해서  디비 데이터를 연결! 

원하는 디비 데이터 이름를 선택

namespace BookRentalShop20
{
    public partial class LoginForm :MetroForm
    {
        string strConnString = "";
        public LoginForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 캔슬버튼 클릭이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            //Application.Exit(); //단점이 있다 정확하게 해제가 안되는 경우가 있다.
            Environment.Exit(0); // 0 false 에러가 없다 -> 정상적인 종료 1 true 에러가 있다. 
        }
        /// <summary>
        /// 로그인 처리버튼 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOk_Click(object sender, EventArgs e)
        {
            LoginProcess();
        }

        private void TxtUserID_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar ==13) //엔터
            {
                TxtPassword.Focus();
            }  
        }

        private void TxtPassword_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == 13)
            {
                LoginProcess();
            }
        }

        private void LoginProcess()  //기본적이 널 값 처리
        {

            //throw new NotImplementedException(); //throw 예외 처리 구현이 안된 에러처리
            if ((TxtUserID.Text == null || TxtUserID.Text == "") ||  (TxtPassword.Text == null || TxtPassword.Text == ""))
            {
                MetroMessageBox.Show(this, "아이디/패스워드를 입력하세요!", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

        }
    }
}

namespace BookRentalShop20
{
    public partial class LoginForm :MetroForm
    {
        string strConnString = "Data Source=192.168.0.28;Initial Catalog=BookRentalshopDB;Persist Security Info=True;User ID=sa;Password=p@ssw0rd!";
        public LoginForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 캔슬버튼 클릭이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            //Application.Exit(); //단점이 있다 정확하게 해제가 안되는 경우가 있다.
            Environment.Exit(0); // 0 false 에러가 없다 -> 정상적인 종료 1 true 에러가 있다. 
        }
        /// <summary>
        /// 로그인 처리버튼 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOk_Click(object sender, EventArgs e)
        {
            LoginProcess();
        }

        private void TxtUserID_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar ==13) //엔터
            {
                TxtPassword.Focus();
            }  
        }

        private void TxtPassword_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == 13)
            {
                LoginProcess();
            }
        }

        private void LoginProcess()  //기본적이 널 값 처리
        {

            //throw new NotImplementedException(); //throw 예외 처리 구현이 안된 에러처리
            if ((string.IsNullOrEmpty(TxtUserID.Text) ) ||  (string.IsNullOrEmpty(TxtPassword.Text) ))   // 이즈널 오아 엠티로  간단하게 변경
            {
                MetroMessageBox.Show(this, "아이디/패스워드를 입력하세요!", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            using (SqlConnection conn = new SqlConnection(strConnString)) //ip 보면 서울에 있는지 대구에 있는지 알수 있다. 접속할려면 아이디 페스워드 
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "SELECT userID FROM userTBL" +
                                  "WHERE userID = '@userID' " +                 //SQL구문을 가져 와서 넣는다.
                                  "  AND password = '12345'";                  //사용자가 사용 하면 바로 진행되는 !
               //////////////////////////////////////////////////////////////////// ID
                SqlParameter parmUserId = new SqlParameter("@userID", SqlDbType.VarChar, 12);                                                //CommandText 를  파라미터
                parmUserId.Value = TxtUserID.Text;
                cmd.Parameters.Add(parmUserId);
                ///////////////////////////////////////////////////////////////// PASSWORD
                SqlParameter parPassword = new SqlParameter("@password", SqlDbType.VarChar, 12);                                              //CommandText 를  파라미터
                parPassword.Value = TxtPassword.Text;
                cmd.Parameters.Add(parPassword);
                SqlDataReader reader = cmd.ExecuteReader();
                reader.Read();
                Debug.WriteLine("On the Debug");
            }
        }
    }
}
namespace BookRentalShop20
{
    public partial class LoginForm :MetroForm
    {
        string strConnString = "Data Source=192.168.0.28;Initial Catalog=BookRentalshopDB;Persist Security Info=True;User ID=sa;Password=p@ssw0rd!";
        public LoginForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 캔슬버튼 클릭이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            //Application.Exit(); //단점이 있다 정확하게 해제가 안되는 경우가 있다.
            Environment.Exit(0); // 0 false 에러가 없다 -> 정상적인 종료 1 true 에러가 있다. 
        }
        /// <summary>
        /// 로그인 처리버튼 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOk_Click(object sender, EventArgs e)
        {
            LoginProcess();
        }

        private void TxtUserID_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar ==13) //엔터
            {
                TxtPassword.Focus();
            }  
        }

        private void TxtPassword_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == 13)
            {
                LoginProcess();
            }
        }

        private void LoginProcess()  //기본적이 널 값 처리
        {

            //throw new NotImplementedException(); //throw 예외 처리 구현이 안된 에러처리
            if ((string.IsNullOrEmpty(TxtUserID.Text) ) ||  (string.IsNullOrEmpty(TxtPassword.Text) ))   // 이즈널 오아 엠티로  간단하게 변경
            {
                MetroMessageBox.Show(this, "아이디/패스워드를 입력하세요!", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            string strUserId = string.Empty;
            using (SqlConnection conn = new SqlConnection(strConnString)) //ip 보면 서울에 있는지 대구에 있는지 알수 있다. 접속할려면 아이디 페스워드 
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "SELECT userID FROM userTBL  " +                 //SQL 구문을 가져 와서 넣을 때는 꼭 구문 사이사이를 띄워줘야 한다.
                                  "  WHERE userID = @userID " +                   //SQL구문을 가져 와서 넣는다.
                                  "  AND password = @password";                  //사용자가 사용 하면 바로 진행되는 !
               //////////////////////////////////////////////////////////////////// ID
                SqlParameter parmUserId = new SqlParameter("@userID", SqlDbType.VarChar, 12);                                                //CommandText 를  파라미터
                parmUserId.Value = TxtUserID.Text;
                cmd.Parameters.Add(parmUserId);
                ///////////////////////////////////////////////////////////////// PASSWORD
                SqlParameter parPassword = new SqlParameter("@password", SqlDbType.VarChar, 12);                                              //CommandText 를  파라미터
                parPassword.Value = TxtPassword.Text;
                cmd.Parameters.Add(parPassword);
                SqlDataReader reader = cmd.ExecuteReader();
                reader.Read();
                strUserId = reader["userID"].ToString();

                MetroMessageBox.Show(this, "접속성공", " 로그인");
                Debug.WriteLine("On the Debug");
            }
        }
    }
}

반응형