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


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();

        }

    }
}

  • 정확한 에러 메시지를 알려주시면 좋을 것 같아요^^    염지현   2016.4.25 17:31     
조회수 307


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명도 바꿔서 사용하시면 됩니다.

  • 2016년 04월 25일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close