이름, 이메일, 컨텐츠, 비밀번호, 입력날짜, 입력 IP로 구성된 심플 방명록이다.
DB에 Insert 하는 것과 Select로 GridView에 추가 하는 내용이 포함되어 있다.
DB 쿼리 기본 내용
--방명록(GuestBook) 테이블 설계
Create Table GuestBook
(
Num Int Identity(1,1) Not Null Primary Key,
[Name] VarChar(25) Not Null,
Email VarChar(50) Null,
Content VarChar(400) Not Null,
[Password] VarChar(20) Not Null,
PostDate SmallDateTime Default(GetDate()),
PostIp VarChar(15) Not Null
)
GO
-- 입력 예시
Insert GuestBook Values('홍길동','g@g.com','방명록입니다.','1234',GetDate(),'127.0.0.1')
-- 출력 예시
Select * From GuestBook Order By Num Desc
-- 세부출력 예시
Select * From GuestBook Where Name = '홍길동'
-- 수정 예시
Begin Tran
Update GuestBook
Set Name = '백두산', Email = 'b@b.com'
Where Name = '홍길동' AND Email = 'g@g.com'
--RollBack Tran
Commit Tran
-- 삭제 예시
Delete GuestBook Where Name = '홍길동'
-- 검색 예시
Select * From GuestBook
Where Name Like '%두%' or Email Like '%g%'
cs 기본 파일
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class GuestBook_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReadData();
}
private void ReadData()
{
// 변수
string strSql =
"Select * From GuestBook Order By Num Desc";
애플리케이션 카운터 설정 및 세션 카운터 설정 방법
애플리케이션은 현재 애플리케이션이 생성된 때부터 카운터 되는 고유한 값이다.
세션 카운터는 접속한 사용자에 따라서 다르게 나타나는 카운터 값이다.
** 이때 애플리케이션 및 세션 카운터를 초기화를 해주고 싶다면 Global.aspx 에서 제공된 메소드에서
처리해야 한다.
cs 기본 파일
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class 카운터_카운터 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 애플리케이션 변수 증가
Application.Lock();
Application["Count"] = Convert.ToInt32(Application["Count"]) + 1;
Application.UnLock();
// 세션 변수 증가
Session["Count"] = Convert.ToInt32(Session["Count"]) + 1;
Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드
DB 기본 쿼리 파일
use MemoDB
go
-- 한줄 메모장 테이블 설계
Create Table MemoDB
(
Num int Identity(1,1) Not Null Primary Key,
Name VarChar(25) Null,
Email VarChar(100) Null,
Title VarChar(150) Null,
PostDate DateTime Default GetDate(),
PostIP VarChar(15)
)
GO
-- 입력 예시
Insert MemoDB Values('홍길동','g@g.com','홍길동입니다.',GetDate(),'127.0.0.1')
-- 출력 예시
Select * From MemoDB Order By Num Desc
-- 세부 출력 예시
Select * From MemoDB Where Name = '홍길동'
--수정 예시
Begin Tran
Update MemoDB
Set Name = '백두산', Email = 'b@b.com', Title = '백두산입니다.', PostDate = GetDate(), PostIP = '127.0.0.1'
Where Name = '홍길동' And Email = 'g@g.com' And Title = '홍길동입니다.' And PostIP = '127.0.0.1'
--RollBack Tran
Commit Tran
-- 삭제 예시
Delete MemoDB Where Name = '홍길동'
-- 검색 예시
Select * From MemoDB
Where Name Like '%백%' OR Email Like '%b%'
cs 기본 파일
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class Memo_DB_MemoList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 변수 언선
string strSql = "Select * From memoDB Order By Num Desc";
Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드
DB 기본 쿼리 파일
use exam
go
-- 고객 테이블
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customers](
[CustomerID] [int] IDENTITY(1,1) NOT NULL,
[FullName] [nvarchar](50) NULL,
[EmailAddress] [nvarchar](50) NULL,
[Password] [nvarchar](50) NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
(
[CustomerID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--입력 예시
Insert Customers Values('홍길동', 'h@h.com', '1234')
--출력 예시
Select * From Customers Order By CustomerID Desc
--세부출력 예시
Select * From Customers Where FullName = '홍길동'
--수정 예시
Begin Tran
Update Customers
Set FullName = '백두산', EmailAddress = 'b@b.com', Password = '2345'
Where FullName = '홍길동' And EmailAddress = 'h@h.com' And Password = '1234'
--RollBack Tran
Commit Tran
--삭제 예시
Delete Customers Where FullName = '백두산'
Delete Customers Where FullName = '@Name'
--검색 예시
Select * From Customers
Where FullName Like '%백%' Or EmailAddress Like '%b%' or Password Like '%34%'
cs 기본 파일 - 고객 입력
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class 고객입력 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 저장 후 리스트 페이지로 이동
//Response.Redirect("./고객리스트.aspx");
}
}
cs 기본 파일 - 고객 리스트
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class 고객리스트 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReadData();
}
private void ReadData()
{
string strSql = "Select * From Customers Order By CustomerID Desc";
// 커넥션
SqlConnection objCon = new SqlConnection();
objCon.ConnectionString = "Password=gsi7091;Persist Security Info=True;User ID=store;Initial Catalog=Store;Data Source=GSI\\SQLEXPRESS";
objCon.Open();
Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드
DB 기본 쿼리 파일
use exam
go
-- 고객 테이블
Create Table dbo.Customers
(
CustomerID int Identity(1,1) Primary Key Not NULL, --일련번호
Name Varchar(25) Null, --이름
Email Varchar(100) Null, --이메일
RegistDate DateTime Default(GetDate()) --등록일
)
Go
--입력 예시
Insert Customers Values('홍길동', 'h@h.com', GetDate())
--출력 예시
Select * From Customers Order By CustomerID Desc
--세부출력 예시
Select * From Customers Where Name = '홍길동'
--수정 예시
Begin Tran
Update Customers
Set Name = '백두산', Email = 'b@b.com'
Where Name = '홍길동' And Email = 'h@h.com'
--RollBack Tran
Commit Tran
--삭제 예시
Delete Customers Where Name = '백두산'
--검색 예시
Select * From Customers
Where Name Like '%백%' Or Email Like '%b%'
cs 기본 파일
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ReadData();
}
}
private void ReadData()
{
string strSql = "Select * From Customers Order By CustomerID Desc";
// 커넥션
SqlConnection objCon = new SqlConnection();
objCon.ConnectionString = "Password=gsi7091;Persist Security Info=True;User ID=exam;Initial Catalog=exam;Data Source=GSI\\SQLEXPRESS";
objCon.Open();
// 커멘드
SqlCommand objCmd = new SqlCommand();
objCmd.Connection = objCon;
objCmd.CommandText = strSql;
objCmd.CommandType = CommandType.Text;
// 데이터 리더 또는 데이터어뎁트 + 데이터 셋
SqlDataReader objDr = objCmd.ExecuteReader();
// 출력
this.dgList.DataSource = objDr;
this.dgList.DataBind();
// DataGrid 사용할때는 Close 필요 없음
//objCon.Close();
}
DB 제작할때 쿼리 문은 항상 작성하는 습관을 들이자.
이 코드를 통해서 여러가지 테스트할때 바로바로 적용해볼 수 있도록 하기 위함이다.
[순서]
1. UDL 파일을 만들어서 DB 커넥션 문을 저장해 놓는다.
2. 쿼리 테이블을 제작
3. 필요하면 로그인 계정 추가
4. 샘플 쿼리 문을 만든다. 아래와 같이
use exam
go
-- 고객 테이블
Create Table dbo.Customers
(
CustomerID int Identity(1,1) Primary Key Not NULL, --일련번호
Name Varchar(25) Null, --이름
Email Varchar(100) Null, --이메일
RegistDate DateTime Default(GetDate()) --등록일
)
Go
--입력 예시
Insert Customers Values('홍길동', 'h@h.com', GetDate())
--출력 예시
Select * From Customers Order By CustomerID Desc
--세부출력 예시
Select * From Customers Where Name = '홍길동'
--수정 예시
Begin Tran
Update Customers
Set Name = '백두산', Email = 'b@b.com'
Where Name = '홍길동' And Email = 'h@h.com'
--RollBack Tran
Commit Tran
--삭제 예시
Delete Customers Where Name = '백두산'
--검색 예시
Select * From Customers
Where Name Like '%백%' Or Email Like '%b%'
void CDlgProgPage::OnBnClickedBtnProgBackgroundload()
{
// 이미지 로드 - 여기에 오픈 다이얼로그를 적용해야징.
// 이미지가 로드 되고 나면 화면을 업데이트 한다.
CFileDialog OpenDlg( TRUE, "Add Files", "*.*", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,
"Bitmap Files(*.*)|*.bmp|Jpeg Files(*.*)|*.jpg|PNG Files(*.*)|*.png|AVI Files(*.*)|*.avi|All Files(*.*)|*.*|" );
if( OpenDlg.DoModal() == IDOK )
{
// 이미지 정보를 View로 보낸다.
g_ProgView->SetBackgroundImage(GetImage(OpenDlg.GetPathName()));
// 백그라운드 이미지가 있다면 체크박스 속성을 활성화 한다.
CheckBackgroundImage();
}
}
DB, Webservice, C#, WPF를 통합적으로 공부 하기 위해서.
현재 모니터링 툴을 하나 개발 중이다.
대충 이런 개념이다.
프로그램을 하다 보면 로그를 남겨야 하고,
그 로그로 인한 상태 정보를 파악하고자 할때가 많다.
그래서 그 로그 정보를 해당 DB로 저장하도록 한다.
웹 서비스를 통해서 해당 로그 정보를 DB로 저장하게 된다.
그리고 모니터링 툴은 현재 변경된 정보만을 DB에서 웹 서비스를 통해서
지속적으로 화면에 출력하게 된다.
출력되는 내용에 따라서 에러나 경고 메시지는 창을 통해서 새롭게 출력이 되게 된다.
대충 이런 개념이다.
현재 DB, 웹 서비스 부분은 완료 되었으며,
모니터링 툴의 UI 부분도 대충은 마무리가 되어 가고 있다.
심플하게 구성해 봤지만.
다양한 어플리케이션을 배울 수 있는 아주 좋은 프로젝트인듯 하다.
이후에 다양하게 응용할 부분은 해당 어플리케이션의 시스템 상태 정보를 볼수 있는 경우나,
IDC 센터의 서버를 이용해서 모니터링을 받게 되면, 유지 보수 및 원격지에서도
해당 어플리케이션의 정보를 탐색이 가능할듯 하다.
이후에는 프로그램의 노가다를 최대한 줄이기 위한 나만의 복사코드를 DB화 해서
원격지에서 해당 클립 보드로 전송하고, 그 내용을 바로 적용 가능하도록 하고
더 나아가면, 음성 인식 시스템을 도입해서, 해당 내용을 빠르게 검색하고
내용 전송을 통한 코드 적용을 극대화 하는 것도 연구중이다.
이 부분에서는 음성 인식 패턴을 다양하게 구축할 수 있는 서버가
관건인듯 하지만.. 아직은 자금이나, 아이디어가 많이 부족하기 때문에.
다양한 단위 테스트를 통한 학습을 우선 해야 할듯 하다.
우선 모니터링 툴에 대한 일부 내용들은 내가 WPF용으로 따로 만든 티스토리 페이지에서
지속적으로 업데이트할 생각이다.
WPF 관련된 내용은 여기 페이지가 많아지는 걸 없애기 위해서
그쪽에서 여러가지 테스트를 통한 내용들을 정리할 생각이다.