일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 시
- NUnit
- GDI+
- 객체지향
- 디자인 패턴
- delegate
- MDB Connect
- eventargs
- Excel Cell Format
- 경기도 버스
- Json.NET
- MVC
- solid
- C# 파일 암/복호화
- eventhandler
- DrawEllipse
- C# MDB
- MDB Select
- Winform
- JSON
- Cell Border Style
- 공공 데이터 포털
- c#
- TDD
- DrawRectangle
- 버스 API
- WPF
- 경기도 버스정보시스템
- sqlite3
- C# MDB Handle
- Today
- Total
White Whale Studio
[WPF] MSSQL Stored Procedure Connection / WPF - 프로시저와의 연결 본문
[WPF] MSSQL Stored Procedure Connection / WPF - 프로시저와의 연결
glorymind 2013. 8. 6. 15:08
우선 프로시저의 정의 방법부터 살펴봅니다.
SQL Server Management Studio 에서 저장 프로시저를 생성해보시면 다음과 같은 작성 내용이 나옵니다.
설명에서 보시면 아시겠지만 Ctrl-Shift-M를 누르시면 조금이나마 프로시저의 설명이나 파라미터를 정의하는데
간단하게 입력을 하실수가 있습니다.
세부 컨텐츠 내용은 보시면 아실테고..
================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
위에서 적색으로 표시된 부분이 가장 중요한 부분들입니다. 프로시저 이름을 중복되지 않게 입력을 해주시고
파라미더 부분에는
@Name int <- 파라미터 이름, 데이터 타입
과 같이 입력해줍니다.
그리고 마지막 적색 부분은 실행될 쿼리를 입력하는 부분입니다. 이 부분은 일반적인 쿼리문과 동일하지만
조건문에서 파라미터의 값을 실제 데이터 대신에 @Name과 같이 연결시켜 주시면 되는것입니다.
Select * from stuTable where stu_name = @Name
과 같이 입력하시면 되겠죠.
입력을 다 하신뒤 SQL 쿼리문을 실행시키시면 프로시저가 생성이 됩니다.
무슨 이유 때문인지 생성도 분명히 되었고 실행까지도 되는데
호출 시에 프로시저 명 아래에 빨간줄이 끄어지는 경우가 있는데 이러한 경우
생성하신 뒤에 개체 탐색기 창에서 해당 프로시저를 대상으로 Ctrl-Shift-R을 몇 번눌러주시면 해결이 됩니다.
(확실하지는 않습니다만 해당 프로시저 혹은 상위 폴더를 대상으로 눌러주심이..;;;)
SQL Server Management Studio 에서 프로시저 실행 시에는 매우 간단합니다..
EXEC 프로시저이름 파라미터로 들어갈 실제 데이터
예시를 들어보면
EXEC TEXTPROC "홍길동"
이렇게 되겠네요.
-----------------------------------------------------------------------------------
다음은 WPF에서의 프로시저 호출입니다.
기본적인 SQL 연결 부분에 대해서는 상세히 언급하지는 않겠습니다.
using System.Data.SqlClient;using System.Data;
추가 해주시고
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConnectString; // 연결 문자열을 입력하시면됩니다. 방법에 따라서 조금이 상이하겠죠.
SqlCommand cmd = new SqlCommand("_getData", conn);
SqlParameter name = new SqlParameter("@Name", SqlDbType.Int); // 프로시저에서 정의한 이름과 데이터 타입을 입력해줍니다.
name.Value = 1;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(name); // 파라미터를 sqlcommand 에 더해줍니다.
conn.Open(); // 지정된 내용들을 기반으로해서 데이터베이스 연결을 열고
DataSet ds = new DataSet(); // 데이터셋에 넣는 방법입니다.
SqlDataAdapter sda = new SqlDataAdapter(cmd); // 어뎁터를 지정하고
int dt = cmd.ExecuteNonQuery(); // 리턴값으로 받는 방법입니다.
sda.Fill(ds); // 데이터셋에 집어넣습니다.
conn.Close(); // DB 연결을 닫아줍니다.
DataTable dt1 = ds.Tables[0];
DataRow dr = dt1.Rows[0];
string dr1 = dr["Name"].ToString();
Console.WriteLine(dr1 + " 반환");
위와 같이 사용하시면 되겠습니다. 위의 소스 코드는 파라미터를 입력받아서 필요한 데이터 값을 하나 뽑아오는 소스입니다. 정의를 하시고 데이터베이스와의 연결이 제대로 된것인지 확인을 꼭 하신뒤 시험해보시기 바랍니다.
연결도 제대로 안된 DB가지고 프로시저 호출 안된다고 삽질한 결과로 말씀드립니다..ㅠㅠ
'IT Engineering > .Net (WPF)' 카테고리의 다른 글
[WPF] DataGrid 의 Combobox 컬럼 사용과 선택한 Cell 정보 읽기 (0) | 2013.09.24 |
---|---|
[WPF] XAML에서 자주 사용하는 것들 (0) | 2013.08.29 |
[WPF] XML 작성 및 자동 줄바꿈 옵션 적용하기. & XML-Linq 사용 (0) | 2013.07.25 |
[WPF] Tray (트레이) 생성하고 조작하기! (2) | 2013.07.25 |
WPF - XML 데이터 / 파일의 TreeView 동적 출력 (0) | 2013.07.16 |