저장 프로세스 출력 매개 변수 호출
private
void
Form1_Load(
object
sender, EventArgs e)
{
SqlParameter para =
new
SqlParameter(
"@CardID"
, SqlDbType.VarChar,20);
// output
para.Direction = ParameterDirection.Output;
//
object
o = ProcOutput(
"Proc_RandomCardIDSelect"
, para,
"@CardID"
);
//
if
(o ==
null
|| o.ToString() ==
""
)
{
textBoxCardID.Text =
" "
;
}
else
{
textBoxCardID.Text = o.ToString();
}
}
///
/// Output
///
///
///
/// Output
///
public
static
object
ProcOutput(
string
procName,SqlParameter para,
string
OutName)
{
string
url =
"server=.;database = BankATM;user id = sa;password = 132000OOO"
;
//
SqlConnection conn =
new
SqlConnection(url);
//
conn.Open();
//
//SqlCommand cmd = conn.CreateCommand();// T-Sql ,
SqlCommand cmd =
new
SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
//
cmd.CommandText = procName;
//
cmd.Parameters.Add(para);
// para
int
n = cmd.ExecuteNonQuery();
//
object
o = cmd.Parameters[OutName].Value;
// @CardID
conn.Close();
//
return
o;
}
T-SQL Output
-- , , ‘6222023xxxxxxxxxxxx’。
-- :Proc_RandomCardIDSelect
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME=
'Proc_RandomCardIDSelect'
)
BEGIN
DROP PROCEDURE Proc_RandomCardIDSelect
END
GO
CREATE PROCEDURE Proc_RandomCardIDSelect
(
@CARDID VARCHAR(20) OUTPUT -- OUTPUT
)
AS
DECLARE @MYCARD VARCHAR(20),@COUNT INT
SET @MYCARD=
'6222023'
SET @COUNT = 0
WHILE(@COUNT < 9)
BEGIN
SET @MYCARD = @MYCARD + SUBSTRING(CONVERT(VARCHAR(20),RAND()),3,1)
SET @COUNT = @COUNT + 1
END
SET @CARDID = @MYCARD
GO
DECLARE @CARDID VARCHAR(20)
EXEC Proc_RandomCardIDSelect @CARDID OUTPUT
SELECT @CARDID
예2:
ASP로.NET와 SQL SERVER는 인연이 가장 좋다. 조금 큰 프로그램은 일반적으로 SQL SERVER를 먼저 고려하지만 경제적인 것을 고려하기 때문에 ACCESS 등을 사용한다.SQL SERVER를 사용하면 데이터베이스의 효율을 높이기 위해 일반적으로 저장 프로세스를 찾습니다. 저장 프로세스의 실행 속도가 빠르고 고급 조회 등 기능을 실현할 수 있기 때문입니다.예를 들어 일부 데이터 매개 변수를 전송하지만 SQL 프로세스가 다를 수 있습니다.
다음 예는 새로운 캐릭터를 만들고 캐릭터의 이름을 중복할 수 없도록 요구하는 것이다. 다음은 저장 과정이다. CREATE PROCEDURE sp_AccountRole_Create@CategoryID int,
@RoleName nvarchar(10),
@Description nvarchar(50),
@RoleID int output
AS
DECLARE @Count int
--
SELECT @Count = Count(RoleID) FROM Account_Role WHERE
RoleName = @RoleName
IF @Count = 0
INSERT INTO Account_Role
(CategoryID, RoleName, Description) valueS
(@CategoryID, @RoleName, @Description)
SET @RoleID = @@IDENTITY
RETURN 1
GO
스토리지 프로세스에 대한 C# 프로세스를 수행합니다.SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand command = new SqlCommand( "sp_AccountRole_Create", DbConnection );
DbConnection.Open(connectString);
// SqlCommand
command.CommandType = CommandType.StoredProcedure;command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);
command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);
command.Parameters.Add("@RoleID", SqlDbType.Int, 4);
//
command.Parameters.Add("Returnvalue",
SqlDbType.Int,
4, // Size
ParameterDirection.Returnvalue,
false, // is nullable
0, // byte precision
0, // byte scale
string.Empty,
DataRowVersion.Default,
null );
command.parameters["@CategoryID"].value = permission.CategoryID;
command.parameters["@RoleName"].value = permission.PermissionName;
command.parameters["@Description"].value = permission.Description;
// ID
command.parameters["@RoleID"].Direction = ParameterDirection.Output;
int rowsAffected = command.ExecuteNonQuery();
int result = command.parameters["Returnvalue"].value;
int newID = command.parameters["@RoleID"].value;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
wince 레지스트리 관련 토론2) 다른 메커니즘은 이전 메커니즘의 두 번의 가동이 필요한 단점을 피할 수 있다.하지만 단점도 있다.OEM(원시 장치 제조업체)은 OAL 레이어에서 Write Registry ToOEM and ReadRegistr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.