본문 바로가기
카테고리 없음

GUI 화면에서 데이터 입력 및 수정 해보기 (오류 해결 중)

by 찡콩찡 2023. 8. 1.

왜.. 한번에 안되는 걸까..

어제는 되고 오늘은 안되는 이유..는 알다가도 모르겠다..

 


오류 ver1.

>> using System.Data.SqlClient; 사용시 SqlConnection 와 SqlCommand 부분에 밑줄이 생긴다.

 근데 어제 콘솔프로젝트는 using System.Data.SqlClient; 가 잘 작동한다. 근데 WinForm은 안된다!! 왜???

>> 구글에 검색해 봤다 해당 어셈블리에 대한 참조를 추가하기 위해...

검색해서 최대한 비슷한걸 맞춰서 참조하였으나 안된다.. 잘못된 부분을 참조한걸까..ㅠ

using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace Project13_Mini
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //여러메서드에 적용할 수 있도록 전역변수로 지정
        string conStr;
        SqlConnection conn;
        SqlCommand cmd;


        private void Form1_Load(object sender, EventArgs e)
        {
            //데이터베이스 연결
            string connStr = "Server=localhost\\MSSQLSERVER01;Database=master;Trusted_Connection=True;";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();

            //커맨드 생성: 데이터베이스에 sql 문을 실행하거나, 실행된 결과를 돌려받는 통로
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;

            list_result.View = View.Details;
            list_result.GridLines = true;
            int listWidth = list_result.Width;
            list_result.Columns.Add("아이디", (int)(listWidth * 0.2));
            list_result.Columns.Add("이름", (int)(listWidth * 0.3));
            list_result.Columns.Add("이메일", (int)(listWidth * 0.3));
            list_result.Columns.Add("출생연도", (int)(listWidth * 0.2));

        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            conn.Close();
            MessageBox.Show("DB연결을 종료합니다");
        }

        private void btn_insert_Click(object sender, EventArgs e)
        {
            string data1, data2, data3, data4, sql;

            data1 = tb_id.Text;
            data2 = tb_name.Text;
            data3 = tb_email.Text;
            data4 = tb_birth.Text;

            sql = "INSERT INTO userTable VALUES('" + data1 + "','" + data2 + "','" + data3 + "'," + data4 + ")";
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery();
        }


        private void btn_update_Click(object sender, EventArgs e)
        {
            //수정추가예정
        }

        private void btn_delete_Click(object sender, EventArgs e)
        {
            //삭제 추가예정
        }


        private void btn_select_Click(object sender, EventArgs e)
        {
            string data1, data2, data3, data4;
            cmd.CommandText = "SELECT * FROM userTable";
            SqlDataReader reader = cmd.ExecuteReader();

            list_result.Items.Clear();
            ListViewItem item;
            while (reader.Read())
            {
                data1 = reader.GetString(0); //아이디
                data2 = reader.GetString(1); //이름
                data3 = reader.GetString(2); //이메일
                data4 = reader.GetInt32(3).ToString(); //출생연도

                item = new ListViewItem(data1);
                item.SubItems.Add(data2);
                item.SubItems.Add(data3);
                item.SubItems.Add(data4);

                list_result.Items.Add(item);
            }
            reader.Close();

        }

        
    }

}
오류 ver2.
using Microsoft.Data.SqlClient;

위의 using 사용시 빨간줄은 사라졌다.. 근데 실행하면 이런 오류가 뜬다...검색해봐도 모르겠다ㅠㅠㅠㅠ

 

원하는 실행결과