이론을 설명해 드렸으니 이제 실행에 옮기는 작업을 하죠.
먼저 database 의 접근 방법이 어떻게 하는 것인지를 살펴봐야 겠네요.
database를 연결하려고 한다면 연결을 담당하는 Connection 객체를 호출하여 사용하면 됩니다. 말 그대로 연결이잖아요..^^;
먼저 ms-sql 은 SqlConnection 객체가 지원을 하며, 기타 다른 객체는 OleDbConnection 객체가 지원합니다. 그래서 db 종류에 따라 본인이 기술할때 선택하여 기술하면 됩니다. 자~~ 연결은 이렇게 하고 그 다음에는 db 의 내용을 긁어오는 작업이나 수정,삭제등을 하게 되겠죠? 그 다음은 db 의 자원낭비를 방지하기 위해 db연결을 닫아주어야 되겠죠.
1. Connection 객체를 선언,생성하여 database 연결을 합니다.
2. 연결문자열을 지정하여 연결하는데 작업을 합니다.
3. Connection 객체의 open 메소드를 이용해서 db 연결을 열어줍니다.
4. 변경작업이 끝난 후, 작업이 완료되면 Close 메소드를 사용하여 db연결을 종료합니다.
Connection 객체가 하는 역할은 db 를 열고 닫아주는 문지기 역할을 하죠.
소스를 살펴보죠
<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
protected void Page_Load(Object Src, EventArgs E)
{
SqlConnection mySqlConnection = new SqlConnection("server=localhost;uid=sa;pwd=;database=northwind");
try
{
mySqlConnection.Open();
Response.Write("데이터베이스에 연결되었습니다.");
Response.Write("데이터베이스 연결 설정 구문 : " + mySqlConnection.ConnectionString + "");
mySqlConnection.Close();
Response.Write("데이터베이스 연결이 종료되었습니다.");
}
catch
{
Response.Write("데이터베이스 연결에 실패하였습니다. 설정 구문 " +
mySqlConnection.ConnectionString);
}
}
</script>
System.Data.SqlClient 은 ms-sql 데이터베이스를 사용할때 기술하는 네임스페이스이며, SqlConnection 객체를 이용하여 객체를 생성하고 있습니다.
인스턴스 생성해서 그 다음 try~catch 문을 이용하여 try 안의 소스내용을 실행한 후 실패하면 catch 문을 실행하게 됩니다. try 안의 소스내용을 보시면 open() 메소드를 이용하여 db 를 열어 놓고, 출력을 한다음 작업이 끝나면 마무리 작업으로 Close()메소드를 사용하여 db 를 닫습니다.
다른 db이라면 using System.Data.OleDb; 로 변경하여 문자열을 변경해 주시면 됩니다. access 데이터베이스 경우를 한번 살펴보죠.
<%@ Page Language="c#" %>
<%@ Import Namespace = "System.Data" %>
<%@ Import Namespace = "System.Data.OleDb" %>
<script language = "c#" runat="server">
void Page_Load(Object Src, EventArgs e)
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("..\\aspbible.mdb")+";";
string sql = "select * from AddressBook";
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
datagrid1.DataSource = dr;
datagrid1.DataBind();
conn.Close();
}
</script>
<html>
<head></head>
<body>
<asp:DataGrid id="datagrid1" runat="server" />
</body>
</html>
Server.MapPath 를 사용하여 물리적 주소를 기재합니다. 그리고 System.Data.OleDb으로 지정해 주셔야 하고요. 위의 소스는 db 에 접속하여 select 문을 이용하여 DataGrid 에 뿌려주는 내용의 소스입니다.
posted by 심재운 (shimpark@gmail.com)