728x90

연결형 방식

DB에 접속하는 순서는

1. 서버에 연결

2. 서버에게 명령을 보내거나 프로시저를 호출해서 데이터를 달라고 요청 (SqlCommand)

3. 실행 메소드를 호출


ExecuteScalar : SQL 명령을 실행하고, Query 가 리턴하는 첫번째 행의 첫번째 열을 리턴한다.

결과가 딱 1개인 집계함수(count, sum, avg 등)에 사용한다.


MySqlCommand cnt = new MySqlCommand("select count(*)  from items", myConn);
myConn.Open();
int totalCount = Convert.ToInt32(cnt.ExecuteScalar());
totalcnt.Text = Convert.ToString(totalCount); // totalcnt 라는 label 에 값을 기록


테스트를 해보니 아래 3줄로 처리하니까 잘 된다.

MySqlCommand cnt = new MySqlCommand("select count(*)  from items", myConn);
myConn.Open();
totalcnt.Text = Convert.ToString(cnt.ExecuteScalar());


비연결형방식

adapter = new MySqlDataAdapter(strqry, myConn);
DataSet DS = new DataSet();  // DataSet 객체 생성
adapter.Fill(DS); // DS에 MySQL DB로부터 가져온 select * from items 의 결과물을 채우겠다.


// DB에서 가져온 총 Record 수

for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
       
totalcnt.Text = Convert.ToString(i);
 }

로 처리해 줄 수도 있다.


더 간단하게 총 레코드수를 확인하는 방법이 있더라.

// DB에서 가져온 총 Record 수

totalcnt.Text = DS.Tables[0].Rows.Count.ToString();


DS.Tables[0].Rows.Count 는 int 형이라서 레이블에 결과를 기록하려고 컴파일(F5)를 했더니 오류 메시지가 나온다.

그래서 뒤에 ToString을 붙여줬더니 OK





블로그 이미지

Link2Me

,