ADO.NET복습
.NET프로그래밍/ADO.NET 2009. 9. 25. 09:36 |==> [FrmADONET.aspx] 소스 및 디자인
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmADONET.aspx.cs" Inherits="FrmADONET" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtCategoryName" runat="server"></asp:TextBox>
<asp:Button ID="btnAdd" runat="server" Text="카테고리입력" onclick="btnAdd_Click" />
<br />
<asp:GridView ID="ctlCategoryList" runat="server">
</asp:GridView>
<asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
-------------------------------------------------------------------------------------
==> [FrmADONET.aspx.cs]
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration; //[0]
public partial class FrmADONET : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//[1] 페이지 로드시 모든 카테고리 리스트 출력
if (!Page.IsPostBack) // !Page.IsPostBack - 페이지가 깜빡거릴때...
{
DisplayData();
}
}
//출력
private void DisplayData()
{
SqlConnection con = new SqlConnection(
"Data Source=.;Initial Catalog=Market;User ID=Market;Password=6750440;");
con.Open();
SqlCommand cmd = new SqlCommand("Select * From Categories", con);
cmd.CommandType = CommandType.Text;
//[!] ExecuteReader() 메서드의 결과값을 DataReader 개체에 담기
SqlDataReader dr = cmd.ExecuteReader();
// GridView에 바인딩
this.ctlCategoryList.DataSource = dr; // DataReader, DataSet, List<T> 등이 담김
this.ctlCategoryList.DataBind(); // 그러면, 알아서 모양 만들어 출력
dr.Close(); // 데이터리더도 반드시 Close()해야 함...
con.Close();
}
// 입력/수정/삭제
protected void btnAdd_Click(object sender, EventArgs e)
{
//[0] 변수 선언부
string strCategoryName = txtCategoryName.Text.Trim();
//[1]커넥션
SqlConnection objCon = new SqlConnection();
objCon.ConnectionString = //"server=.;database=Market;uid=Market;pwd=6750440;";
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
objCon.Open();
//[2] 커맨드
SqlCommand objCmd = new SqlCommand();
objCmd.Connection = objCon; // 오픈될 커넥션 개체 지정
objCmd.CommandText = String.Format(
"Insert Categories(CategoryName) Values('{0}')", strCategoryName); // 명령어
objCmd.CommandType = CommandType.Text; // 타입지정
//[3] 실행 : ExecuteNonQuery(), ExecuteReader(), ExecuteScalar(), ExecuteDataSet()
int rows = objCmd.ExecuteNonQuery(); // 모든 명령어 실행 <-> Select도 가능-Reader를 사용
this.lblDisplay.Text = rows.ToString() + "개 입력되었습니다.";
//[4] 마무리
objCon.Close();
}
}
-------------------------------------------------------------------------------------
[실행결과]
--> 아래그림에서 '텍스트박스'에 "자동차"를 입력하고 "카테고리입력"버튼을 누르면 GridView아래에 있는 레이블에 "1개 입력되었습니다."라는 텍스트가 출력된다.
--> [SQL Server]내의 [Market]데이터베이스 - [dbo.Categories]테이블을 '실행'버튼을 눌러 실행해보면, [dbo.Categories]테이블의 'CategoryID'가 20번째에 위의그림의 웹페이지에서 입력한 자료인 "자동차"가 저장된 것을 볼 수 있다.
--> 아래그림에서 웹페이지를 새로 열어보면 "GridView"에서도 'CategoryID'가 20번째에 "자동차"가 저장되어 있는 것을 볼 수 있다.
'.NET프로그래밍 > ADO.NET' 카테고리의 다른 글
10. SqlCommand..::.ExecuteScalar 메서드 (0) | 2009.09.25 |
---|---|
9. ConfigurationManager.ConnectionStrings 속성(한 곳에다 연결문자열 저장한 것을 불러오는 명령어) (0) | 2009.09.25 |
8. SqlError 클래스 (0) | 2009.09.24 |
7. SqlDataReader.Read 메서드 (0) | 2009.09.24 |
6. SqlDataReader 클래스 (0) | 2009.09.24 |