반응형
별다른 DBMS를 사용하지 않고, 엑셀파일을 데이터저장소로 사용하는 코드
발주 / 입고 / 출고 데이터 관리 활용할 것임..
/*
// 확장명 XLS (Excel 97~2003 용)
private const string ConnectStrFrm_Excel97_2003 =
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=\"{0}\";" +
"Mode=ReadWrite|Share Deny None;" +
"Extended Properties='Excel 8.0; HDR={1}; IMEX={2}';" +
"Persist Security Info=False";
// 확장명 XLSX (Excel 2007 이상용)
private const string ConnectStrFrm_Excel =
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=\"{0}\";" +
"Mode=ReadWrite|Share Deny None;" +
"Extended Properties='Excel 12.0; HDR={1}; IMEX={2}';" +
"Persist Security Info=False";
*/
* DB관련 클래스
class DBClass
{
private readonly String filePath;
private readonly String fileName;
OleDbConnection oleCon;
// 생성자
public DBClass( String filePath, String fileName )
{
this.filePath = filePath;
this.fileName = fileName;
}
// 연결 함수
public void Conn()
{
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
+ this.filePath + this.fileName + "; Extended Properties = Excel 12.0;";
this.oleCon = new OleDbConnection(ConnectionString);
oleCon.Open();
}
public DataTable Read(string query)
{
try
{
// db 연결
Conn();
/*
select문에 대한 읽어오는 방법이 여러가지 방법중..
dataAdapter를 이용하는 방법 / dataReader를 이용하는 방법
아래코드는 Adapter활용
DataSet를 채우고 데이터 원본을 업데이트 하는... 데이터 명령 집합
*/
OleDbDataAdapter oleOda = new OleDbDataAdapter(query, oleCon);
DataTable exDataTable = new DataTable();
//exDataTable.Columns.Add("선택", typeof(bool)); //선택 체크박스용
oleOda.Fill(exDataTable);
oleCon.Close();
return exDataTable;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}
}
* Form 소스
// 폼에서 DBClass 활용
public partial class Form1 : Form
{
string fileName; // 엑셀파일명
string filePath; // 엑셀파일 경로
DBClass db; // DBClass 변수
DataTable dt; // 데이터테이블 변수
public Form1()
{
InitializeComponent();
filePath = "D:\\";
fileName = "테이블목록.xlsx";
db = new DBClass(filePath, fileName); // 생성자에 매개변수를 넘기면서 객체생성
dt = new DataTable(); // 객체생성
string qry = "SELECT [발주번호],[항번],[매입업체],[발주일자],[품명],[규격],[수량],[단위] " +
"FROM [발주테이블$]" + // 테이블명에는 $ 붙어야함.. 이유모름
" order by [발주일자] desc, [발주번호] desc, [항번] asc";
dt = db.Read(qry); // 데이터테이블 형식으로 받아옴
dataGridView1.DataSource = dt; //데이터그리드 뷰에 뿌림
}
}
단순 데이터그리드뷰에 데이터를 뿌리는 소스 코드...
반응형
'IT 개발일지' 카테고리의 다른 글
C# HOW TO CONNECT MYSQL DATABASE 연결하기 (0) | 2022.12.26 |
---|---|
C# how to datagridview checkbox value 변경 이벤트 적용하기 (0) | 2022.02.10 |
C# 윈폼 how to vs2019 community rdlc report designer 보고서 디자인 사용하기 (0) | 2021.10.26 |
[EXCEL] 숫자 자릿수 채우기 (0) | 2020.06.30 |
C# datagridview 컬럼 셋팅 2가지 (0) | 2020.04.13 |
댓글