C# 에서 SQLite DB에 있는 테이블을 가져오는 쿼리문이며 dataGridView1 에 뿌려주는 코드이다.
dataGridView1_Display(ds.Tables[0]); 함수는 없어도 된다. dataGridView1 의 특정 칼럼을 readonly 로 한다든지, hidden 으로 처리할 칼럼을 지정한다든지 이런 화면 구성상의 옵션처리를 위해서 만든 함수이다.
string ConnectionString = @"Data Source=test.db;Version=3;";
SQLiteConnection sqliteConn;
SQLiteDataAdapter adapter;
DataTable dt;
DataTable GetSqliteItems()
{
try
{
sqliteConn = new SQLiteConnection(ConnectionString);
if (sqliteConn.State == ConnectionState.Closed)
{
sqliteConn.Open();
}
string strqry = "select * from items ";
if (searchBox.Text.Length > 0)
{
strqry += "where Quantity='" + searchBox.Text + "' ";
}
strqry += "order by uid";
adapter = new SQLiteDataAdapter(strqry, sqliteConn); // SQLiteDataAdapter 객체 생성
DataSet ds = new DataSet(); // DataSet 객체 생성
adapter.Fill(ds); // 생성된 DataSet ds에 데이터 채우기 : select * from items 의 결과물을 채우겠다.
sqliteConn.Close(); // SQLite 연결해제
dataGridView1.DataSource = ds.Tables[0]; //바인딩부분
dataGridView1_Display(ds.Tables[0]); // 화면 구성/제어에 필요한 사용자 함수
return ds.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
finally
{
//always close the connection
if (sqliteConn.State == ConnectionState.Open)
{
sqliteConn.Close();
}
}
}
또다른 방법으로는
string ConnectionString = @"Data Source=test.db;Version=3;";
public void Read()
{
try
{
using (var Conn = new SQLiteConnection(ConnectionString))
{
Conn.Open();
string strqry = "select * from items ";
if (searchBox.Text.Length > 0)
{
strqry += "where ItemName LIKE '%" + searchBox.Text + "%' or Price LIKE '%" + searchBox.Text + "%' or Quantity='" + searchBox.Text + "' ";
}
strqry += "order by uid";
using (var cmd = new SQLiteCommand(strqry,Conn))
{
using(SQLiteDataReader reader = cmd.ExecuteReader())
{
DataTable dataTable = new DataTable();
dataTable.Load(reader);
dataGridView1.DataSource = dataTable;
dataGridView1_Display(dataTable); // 화면 구성/제어에 필요한 사용자 함수
}
}
Conn.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
}
'C# > C# SQL' 카테고리의 다른 글
C# MySqlDataReader Format (0) | 2016.01.28 |
---|---|
C# SQLite 데이터 삭제 (transaction 반영) (0) | 2016.01.14 |
C# SQLite dataGridView1 행 삭제 (transaction 미반영) (0) | 2016.01.14 |
C# SQLite Data Type 으로의 변환 및 구조 분석 (0) | 2016.01.13 |
C# SQLite DB Create 과 테이블 생성 (0) | 2016.01.10 |