본문 바로가기
Study/C#(Window programming)

DB연동하기(MySQL에 기록 저장하기)

by Answer Choi 2015. 9. 2.
반응형

DB예제 다운로드


한동안 컴터도 포맷하고, MySQL때문에 시간을 많이 버렸네요 ㅠ


이번에는 DB에 기록들을 저장해 보겠습니다.



전체적인 모습은 위와 같습니다.


DB에서 datetimepicker로 선택된 날짜의 데이터를 가져와 뿌려줍니다.


기본적으로 오늘 날짜를 가져오게 하였습니다.


1
dateTimePicker1.Value = DateTime.Now;
cs


DB를 가져오는 방법으로는 동기와 비동기 2가지 방식이 있는데 비동기 방식을 선택하였습니다.


먼저 DB의 구조입니다.


schema는 test이며, table은 answertest입니다.


총 4개의 column이 있고, id는 자동으로 생성되는 primary key이고, 총 저장할 건 No, Record, Date입니다.


1
2
3
4
5
6
7
8
String strCon = "Server=localhost;Database=test;Uid=test;Pwd=;";
DataSet ds = new DataSet();
string sql = "SELECT * FROM answertest where date like '"+date+"%'";
using(MySqlConnection conn=new MySqlConnection(strCon))
{
      MySqlDataAdapter adpt = new MySqlDataAdapter(sql, conn);
      adpt.Fill(ds, "answertest");
}
cs


MySQL에 MySqlConnection으로 접속 하고, MySqlDataAdapter를 통해 DataSet에 저장을 합니다.


Line 1 : MySQL에 접근을 하기위한 정보들입니다.


Line 3 : like를 쓴 이유는 실제 데이터가 저장될때 시간까지 저장되는데 날짜로 가져와야 하기 때문에 like를 썼습니다.


위와 같이 실행을 하고나면 ds에 쿼리한 DB정보가 저장됩니다.


이 데이터는 foreach문으로 listview에 뿌려줍니다.


1
2
3
4
5
6
7
 foreach(DataRow r in ds.Tables[0].Rows)
 {               
    ListViewItem lv = new ListViewItem(r["no"].ToString());
    lv.SubItems.Add(r["record"].ToString());
    lv.SubItems.Add(r["date"].ToString());
    listView2.Items.Add(lv);
 }
cs


DB에 저장은 어플리케이션에서 기록버튼을 누를때마다 DB에 insert하도록 했습니다.


1
2
3
4
5
6
using (MySqlConnection conn = new MySqlConnection(strCon))
{
    conn.Open();
    MySqlCommand cmd = new MySqlCommand("INSERT INTO answertest (no,record,date) VALUES ("+recordCnt+",'"+timerText.Text+"','"+dateTimeText.Text.ToString()+"')", conn);
    cmd.ExecuteNonQuery();
}
cs




반응형

인기글