ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# Textbox를 mssql에 저장
    닷넷/WinForms 2016. 7. 5. 13:42
    반응형

    1> Form Design

            private System.Windows.Forms.Label label1; //방번호
            private System.Windows.Forms.Label label2; //이름
            private System.Windows.Forms.Label label3; //외박사유
            private System.Windows.Forms.Label label4; //외박일정
            private System.Windows.Forms.DateTimePicker dateTimePicker1; //외박시작일
            private System.Windows.Forms.DateTimePicker dateTimePicker2; //외박만료일
            private System.Windows.Forms.Label label5; //~
            private System.Windows.Forms.TextBox textBox1;
            private System.Windows.Forms.TextBox textBox2;
            private System.Windows.Forms.TextBox textBox3;
            private System.Windows.Forms.Button button1; //저장
            private System.Windows.Forms.Button button2; //닫기



    2>

     using System.Data.SqlClient;


    저장버튼을 누르면 DB 연결하고, Textbox에 있는 내용을 DB에 저장할 것이므로

    저장버튼 두번클릭하거나 F7 눌러서 코딩창을 연다.


    거기에 아래와 같이 작성한다.


    SqlConnection conn = new SqlConnection("server=localhost;database=DB이름;user id=아이디;password=패스워드;");

    //DB 연결 변수


    SqlCommand comm = new SqlCommand();

    //명령 변수


    conn.Open();

    //DB 열기


    SqlCommand comm =  new SqlCommand(CommandString,conn);

    보통은 명령변수를 이런식으로 하지만 TextBox에 있는 내용을 넣을 것이므로


    CommandString


    comm.CommandText =  "INSERT INTO WBdate(UserName, RoomNum, StartDate, FinalDate, Sayu) VALUES (@name, @roomn, @startd, @finald, @wsa) ";


    이걸로 대체하고,


    parameter에 값을 주는 식으로 해서


    comm.Parameters.Add("@roomn", SqlDbType.Text).Value = textBox1.Text;
    comm.Parameters.Add("@name", SqlDbType.Text).Value = textBox2.Text;
    comm.Parameters.Add("@wsa", SqlDbType.Text).Value = textBox3.Text;
    comm.Parameters.Add("@startd", SqlDbType.DateTime).Value = dateTimePicker1.Value;

    comm.Parameters.Add("@finald", SqlDbType.DateTime).Value = dateTimePicker2.Value;


    작성한다.


    여기서 주의할 것은 CommandText 다음에 파라미터에 값을 넣는 것으로 작성해야 한다.

    순서 바뀌면 명령대로 query 실행이 안된다.


    그 다음에


    conn

    comm.Connection = conn;


    comm.ExecuteNonQuery(); 

    conn.Close();


    이렇게 끝낼 수도 있고,

    명령대로 DB에 Text 값을 저장하는 것이 성공한 후와 실패했을 때 다르게 메시지박스를 띄우려면


    try catch를 써서


    try
    {
        comm.ExecuteNonQuery();

         MessageBox.Show("저장 완료", "종료", MessageBoxButtons.OK, MessageBoxIcon.None);
         textBox1.Text = "";
         textBox2.Text = "";
         textBox3.Text = "";
     }
    catch (Exception ex)
    {
         MessageBox.Show("저장 실패", "종료", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
    finally
    {
         conn.Close();
         conn.Dispose();
    }


    이런식으로 작성한다.


    반응형

    댓글

Designed by Tistory.