c#에서 mysql을 연동하려하는데 뭐가 문제인지 모르겠습니다.

조회수 3742회

Insert 함수를 컴파일 할때 open이 안되는것 같습니다.

select 함수는 컴파일에러가 납니다.

뭐가 문제일까요?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.Data;

namespace DB_test
{
    class Program
    {
        private static void SelectUsingAdapter()
        {
            DataSet ds = new DataSet();
            string connStr = "server=localhost;Uid=root; password=qwe123; database=db_test";

            using (MySqlConnection conn = new MySqlConnection(connStr))
            {
                //MySqlDataAdapter 클래스를 이용하여
                //비연결 모드로 데이타 가져오기
                string sql = "SELECT * FROM members";
                MySqlDataAdapter adpt = new MySqlDataAdapter(sql, conn);
                adpt.Fill(ds, "members");
            }

            foreach (DataRow r in ds.Tables[0].Rows)
            {
                Console.WriteLine(r["pwd"]);
            }
        }

        private static void Insert()
        {
            string connStr = String.Format("server=localhost;Uid=root; password=qwe123; database=db_test");
            MySqlConnection conn = new MySqlConnection(connStr);
            conn = new MySqlConnection(connStr);

            try
            {
                conn.Open();
                Console.WriteLine("MySQL DB 연결");

            String sql = "INSERT INTO members (id, pwd, name) " +
                    "VALUES ('gon', '111', '김삿갓')";

            MySqlCommand cmd = new MySqlCommand(sql, conn);
            cmd.ExecuteNonQuery();




            }
            catch { }
            finally
            {
                conn.Close();
                Console.WriteLine("MySQL DB 연결 닫기");

            }
        }

        static void Main(string[] args)
        {

            Insert();
            //SelectUsingAdapter();

        }

    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 실행된 다음에 발생하는 에러인 런타임 에러가 아니고 컴파일 에러가 나나요? 비주얼 스튜디오에서 빨간줄이 간다는 의미이신가요?

    컴파일 에러라면 MySql라이브러리를 못가져오는것 아닐까요? Visual Studio2015기준으로 상단메뉴 Project-Add Reference해서 나오는 창에서 MySql.Data를 추가해 보세요.


    컴파일 에러가 아니라 런타임 에러. 그러니까 원하는 값이 출력 안되는 경우라면 저는 다음과 같이 해 보니까 값이 나오네요.

    private static void SelectUsingAdapter()
    {
        DataSet ds = new DataSet();
        string connStr = "server=localhost;Uid=root; password=???; database=test";
        MySqlConnection conn = null;
        MySqlDataReader rdr = null;
        try
        {
            conn = new MySqlConnection(connStr);
            conn.Open();
            string stm = "SELECT * FROM my_table";
            MySqlCommand cmd = new MySqlCommand(stm, conn);
            rdr = cmd.ExecuteReader();
    
            while (rdr.Read())
            {
                Console.WriteLine(rdr.GetString(1));
            }
        }
        catch(Exception e)
        {
    
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
    
    }
    

    GetString(1)대신 원하는 칼럼이 몇번째인지 값을 적어 주시면 되고 select문에서 table명도 바꿔서 사용하시면 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)