ADO. NET 액세스 저장 프로시저
ADO. NET 에서 저장 과정 을 어떻게 호출 하 는 지 보 여 주 는 작은 사례 를 만 들 었 다.
데이터베이스 테이블 구조 코드 는 다음 과 같다.
CREATE
TABLE
TestTB(
[
ID
]
[
int
]
IDENTITY
(
1
,
1
)
PRIMARY
KEY
NOT
NULL
,
[
Name
]
[
nvarchar
]
(
50
)
NOT
NULL
, )
GO
저장 프로시저 코드 는 다음 과 같 습 니 다.
CREATE
PROCEDURE
[
dbo
]
.
[
SelectAllProc
]
(
@inputData
nvarchar
,
@outPutData
int
output )
AS
declare
@myCount
int
print
@inputData
select
*
from
dbo.TestTB
select
@myCount
=
count
(
*
)
from
dbo.TestTB
set
@outPutData
=
@myCount
/*
SET NOCOUNT ON
*/
RETURN
@myCount
GO
이 저장 과정 은 입력 매개 변수, 출력 매개 변수, selection 문 구 를 되 돌려 주 는 결과 집합 과 return 이 되 돌려 주 는 단일 결과 값 을 포함한다.ADO. NET 호출 시 이 값 을 동시에 설정 하고 가 져 와 야 합 니 다.
인터페이스 부분 은 ASP. NET MVC 3 를 사용 합 니 다.데이터 의 편 의 를 위해 두 개의 Model 클래스 를 맞 췄 습 니 다.각각 TestTB 류 와 TestTBView Model 류 다.첫 번 째 종 류 는 하나의 데이터 실 체 를 싣 는 데 사용 되 고 두 번 째 종 류 는 인 터 페 이 스 를 나 타 낼 때 한꺼번에 데 이 터 를 인터페이스 에 전달 하 는 데 사용 된다.
Models 부분의 코드 는 다음 과 같 습 니 다.
1
///
<summary>
2
///
3
///
</summary>
4
public
class
TestTB
5
{
6
public
int
ID {
get
;
set
; }
7
public
string
Name {
get
;
set
; }
8
}
9
10
///
<summary>
11
///
12
///
13
///
</summary>
14
public
class
TestTBViewModel
15
{
16
public
TestTBViewModel()
17
{
18
this
.TestTBList
=
new
List
<
TestTB
>
();
19
}
20
///
<summary>
21
///
TestTB
22
///
</summary>
23
public
List
<
TestTB
>
TestTBList {
get
;
set
; }
24
///
<summary>
25
///
return
26
///
</summary>
27
public
int
TotalCount {
get
;
set
; }
28
///
<summary>
29
///
output
30
///
</summary>
31
public
int
TotalCount2 {
get
;
set
; }
32
}
저장 프로시저 와 MVC 컨트롤 러 의 코드 를 다음 과 같이 호출 합 니 다.
1
///
<summary>
2
///
Action
3
///
</summary>
4
///
<returns></returns>
5
public
ActionResult ShowData()
6
{
7
return
View(
this
.GetAllData());
8
}
9
10
///
<summary>
11
///
12
///
</summary>
13
///
<returns>
</returns>
14
private
TestTBViewModel GetAllData()
15
{
16
TestTBViewModel model
=
new
TestTBViewModel();
17
//
( )
18
using
(SqlConnection connection
=
new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[
"
ApplicationServices
"
].ConnectionString))
19
using
(SqlCommand command
=
new
SqlCommand())
20
{
21
command.Connection
=
connection;
//
22
command.CommandText
=
"
dbo.SelectAllProc
"
;
//
23
command.CommandType
=
System.Data.CommandType.StoredProcedure;
//
24
25
//
, , return
26
SqlParameter pReturn
=
command.Parameters.Add(
"
@aaa
"
, System.Data.SqlDbType.Int);
27
//
28
pReturn.Direction
=
System.Data.ParameterDirection.ReturnValue;
29
30
//
,
31
SqlParameter pInput
=
command.Parameters.Add(
"
@inputData
"
, System.Data.SqlDbType.NVarChar);
32
//
33
pInput.Direction
=
System.Data.ParameterDirection.Input;
34
//
( print )
35
pInput.Value
=
"
aaa
"
;
36
37
//
,
38
SqlParameter pOut
=
command.Parameters.Add(
"
@outPutData
"
, System.Data.SqlDbType.Int);
39
//
40
pOut.Direction
=
System.Data.ParameterDirection.Output;
41
42
//
43
connection.Open();
44
//
45
//
ExecuteReader System.Data.CommandBehavior.CloseConnection
46
using
(SqlDataReader dataReader
=
command.ExecuteReader(System.Data.CommandBehavior.CloseConnection))
47
{
48
//
49
while
(dataReader.Read())
50
{
51
model.TestTBList.Add(
new
TestTB()
52
{
53
ID
=
dataReader.GetInt32(
0
),
54
Name
=
dataReader.GetString(
1
)
55
});
56
}
57
}
58
59
//
return、output dataReader, 。
60
61
//
return
62
model.TotalCount
=
(
int
)pReturn.Value;
63
//
output
64
model.TotalCount2
=
(
int
)pOut.Value;
65
}
66
67
return
model;
68
}
<
SPAN
style
=
"COLOR: #ff0000; BACKGROUND-COLOR: #ffffff"
color
=
"#ff0000"
><
STRONG
> : return、output DataReader , 。</
STRONG
></
SPAN
>
인터페이스 부분 은 Razor 템 플 릿 을 사용 하여 보 여 줍 니 다.구체 적 인 코드 는 다음 과 같다.
@model MvcApplication1.Models.TestTBViewModel @{ ViewBag.Title = "ShowData"; Layout = "~/Views/Shared/_Layout.cshtml"; }
<
h2
>
ShowData
</
h2
>
<
p
>
@Html.ActionLink("Create New", "Create")
</
p
>
<
table
>
<
tr
>
<
th
>
ID
</
th
>
<
th
>
Name
</
th
>
</
tr
>
@foreach (var item in Model.TestTBList) {
<
tr
>
<
td
>
@item.ID
</
td
>
<
td
>
@item.Name
</
td
>
</
tr
>
}
</
table
>
<
p
>
Count: @Model.TotalCount
</
p
>
<
p
>
Count2: @Model.TotalCount2
</
p
>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.