C# DataSet

C#/C# SQL 2015. 12. 20. 13:13
728x90

PC , 스마트폰(아이폰, 안드로이드폰) 상에서 사용하는 로컬 데이터베이스로는 SQLite 가 많이 사용된다.

SQLite 는 직접 다루게 될 때 정리를 해볼 생각이다.


DataSet 은 클라이언트 메모리 상의 데이터베이스다.


메모리상에 만드는 데이터베이스는 PC를 끄거나 프로그램을 종료하면 데이터가 날라가 버린다.

따라서, 실제 데이터베이스(오라클, MySQL, MS-SQL, SQLite, 엑셀, MS Access 등)에 있는 자료를 불러다가 DataSet 과 연결하여 작업을 하고 Update, Delete, Insert 를 수행하게 된다.

DataTable 클래스는 메모리상에 테이블을 표현하는 클래스이다.
DataSet(메모리 상의 데이터베이스)은 여러개의 DataTable 들을 포함한다.



일반적으로 SqlDataAdapter 를 이용하여 데이타를 서버로부터 가져와 메모리상의 DataSet에 할당 후 사용한다.

MySQL 과 연결하는 것은 앞에 My만 붙여준다고 이해하면 된다.


static string ConnectionString = string.Format("SERVER={0};DATABASE={1};UID={2};PASSWORD={3};",server_ip,dbname,username,password);  // 실제 연결할 DB의 정보를 입력해야 함
MySqlConnection myConn;
MySqlDataAdapter adapter;

myConn = new MySqlConnection(ConnectionString);
if (myConn.State == ConnectionState.Closed)
{
    myConn.Open();
}
string strqry ="SELECT * FROM Table_A";

strqry += " Where 조건문";

adapter = new MySqlDataAdapter(strqry, myConn);

DataSet ds = new DataSet(); // DataSet 객체에 메모리 할당
adapter.Fill(ds, "DSTables"); // DataSet에 테이블 데이타를 넣음


for 문, foreach 문, while 문을 활용하여 데이터를 콘솔화면에 출력하거나

dataGridView와 바인딩하여 dataGridView 화면에 출력한다.

또는 listView, TreeView 에 출력할 수도 있다.


if (myConn.State == ConnectionState.Open)
{
    MyConn.Close();
}


ds.Tables["DSTables"].Rows.Count 는 총 레코드수를 반환한다.

dataGridView1.DataSource = ds.Tables[0]; // DataSet을 DataGridView 컨트롤에 바인딩

ds.Tables[0].Rows.Count.ToString(); // DB에서 가져온 총 Record 수

DataTable dt = ds.Tables["DSTables"];


메모리상의 DB인 DataSet 과 실제 DB인 SQL 간에 SqlDataAdapter 를 이용하여 Select, Update, Insert, Delete 를 한다.

블로그 이미지

Link2Me

,