c#에서 mysql을 연동하려하는데 뭐가 문제인지 모르겠습니다.
조회수 3787회
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명도 바꿔서 사용하시면 됩니다.
댓글 입력