ADO.NET 의 한글화된 msdn 내용
DB&XML 2007. 9. 17. 01:59 |.net framework의 내용중에서 ado.net 에 관련된 내용이다.
한글로되어 있기 때문에 더 추천 !!
http://msdn.microsoft.com/library/kor/default.asp?url=/library/KOR/cpguide/html/cpconaccessingdatawithadonet.asp
대부분의 책을 보면 DataSet 등과 같은 DB를 연결하기 위한 부분들이 코드로 직접 작성하는 부분이 많았던거 같다. 내가 지금 하고 있는 VS 2008 Beta 2 에서는 대부분 많은 부분 자동화가 되어 있는듯 하다. 아무래도 2005 이상 부터는 그런거 같은데..
간단하게 DB를 가져와서 Window Form에 연결하는 과정에 대해서 적어 보도록 한다.
기본적으로 SQL이 설치 되어 있고, Northwind DB가 있다고 가정하겠습니다.
Data Sources 창에서 추가하고 시작할때.
메뉴에서 Data를 선택하고 Show Data Sources 를 선택합니다.
선택하면 Data Sources 라는 창이 하나 보이게 됩니다.
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT ID, Pass FROM Login WHERE ID='aaa';", conn);위에서 보는 것과 같이 aaa라는 사용자의 ID, Pass 내용을 가져 오는 구문이다.
DB명 : member.mdb
테이블 이름 : BookTable
테이블 내용 : ID(일련번호), Title(텍스트)
using System.Data.OleDb;
(이것만 선언 해서 안되는거 같네욤, References 에 "System.Data"를
추가해주어야 합니다.)
OleDbConnection, OleDbDataAdapter 처리
string mdbFile = Path.Combine(AppDataPath, "d:\\member.mdb");
string connString = string.Format(
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile);
OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM BookTable;", conn);
DataSet myDataSet;
adapter.Fill(myDataSet, "BookTable");
myListBox.DataContext = myDataSet;
... 나머지는 xaml에서 처리가능...
<StackPanel>
<StackPanel.Resources>
<c:IntColorConverter x:Key="MyConverter"/><DataTemplate x:Key="BookItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Title}" Grid.Column="0"
FontWeight="Bold" />
</Grid>
</DataTemplate>
</StackPanel.Resources><ListBox Name="myListBox" Height="200"
ItemsSource="{Binding Path=BookTable}"
ItemTemplate ="{StaticResource BookItemTemplate}"/>
<Button Click="OnClick">Add Record</Button>
</StackPanel>
DataTable dt = myDataSet.Tables["BookTable"];
foreach (DataRow row in dt.Rows)
{
string ss = row["Title"].ToString();
}
- "BookTable" 테이블 명이다.
- "Title" 컬럼 번호. (0, 1, 2, 인덱스도 가능하다.)
DataTable myDataTable = myDataSet.Tables["BookTable"];
DataRow row = myDataTable.NewRow();
row["Title"] = "손병욱";
myDataTable.Rows.Add(row); //<--이것은 DB랑은 상관없다.
위의 내용을 토대로 해서 기본 테이블에서 내용을 가져 와서 검색 하고
하는 등의 내용을 해결할 수 있을거 같다.
위의 내용을 토대로 로그인 페이지를 만들어 볼려고 한다.