调用数据库存储过程
private void InitializeComponent()
{ this.cmdInsertGiftbook.CommandText = "dbo.[spInsertGiftbook]";
this.cmdInsertGiftbook.CommandType = System.Data.CommandType.StoredProcedure;
this.cmdInsertGiftbook.Connection = this.cnAddGiftbook;
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CustomerID", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ISBNList", System.Data.SqlDbType.NVarChar, 4000));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@UserName", System.Data.SqlDbType.NVarChar, 16));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@GiftbookTypeID", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Number", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ReleaseDatetime", System.Data.SqlDbType.DateTime, 8));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Feedback", System.Data.SqlDbType.NVarChar, 1073741823));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Memo", System.Data.SqlDbType.NVarChar, 1073741823));
this.Load += new System.EventHandler(this.Page_Load); }cmdInsertGiftbook.ExecuteNonQuery(); int returnvalue = int.Parse(cmdInsertGiftbook.Parameters["@RETURN_VALUE"].Value.ToString()); if(returnvalue == 0)
{
lbResult.Text = "图书书号不正确。请检查是否存在相应的图书。";
}------这是可以执行出来的
else if(returnvalue == -3)
{
lbResult.Text = "该图书已经报废了。";
}---我想添加的怎么也不能返回参数存储过程如下:是在不知这个0是如何传递过去的
CREATE PROCEDURE dbo.spInsertGiftbook
(
@CustomerID int,
@ISBNList nvarchar(4000),
@UserName nvarchar(16),
@GiftbookTypeID int,
@Number int,
@ReleaseDatetime datetime,
@Feedback ntext,
@Memo ntext
)
AS
SET NOCOUNT OFF;--DECLARE @BookID int
--DECLARE @IsOutOfPrint int
DECLARE @ProvinceID intSELECT @ProvinceID = dbo.GetProvinceID(N'CustomerID', @CustomerID)-- 检查该用户针对该省份是不是有写权限
IF (dbo.CheckUserProvinceWriteInfo(@UserName, @ProvinceID) = 0)
RETURN -1SET @ISBNList = LTRIM(RTRIM(@ISBNList))SELECT LTRIM(RTRIM(SplitString)) AS ISBN INTO #TempBookISBNList FROM dbo.GetSplitString(@ISBNList, ',')/*
SELECT @BookID = BookID FROM Books WHERE (ISBN = @ISBN) --从Books中检索是不是有相应的书号IF (@BookID IS NULL) --如果没有相应的ID,表明该图书不存在
BEGIN
RETURN 0
END
*//*
SELECT @IsOutOfPrint = IsOutOfPrint FROM Books WHERE (ISBN = @ISBN) --从Books中检索是不是有相应的书号IF (@IsOutOfPrint=1) --如果没有相应的ID,表明该图书不存在
BEGIN
RETURN -3
END
*/--IF (SELECT COUNT(*) FROM Giftbooks WHERE CustomerID = @CustomerID AND BookID = @BookID) > 0
--BEGIN
-- SELECT @ReturnValue = 0
-- RETURN -2
--END
--ELSE
BEGIN
INSERT INTO Giftbooks (
CustomerID,
BookID,
UserName,
GiftbookTypeID,
Number,
ReleaseDatetime,
Feedback,
Memo
)
SELECT @CustomerID,
Books.BookID,
@UserName,
@GiftbookTypeID,
@Number,
@ReleaseDatetime,
@Feedback,
@Memo
FROM #TempBookISBNList INNER JOIN
Books ON #TempBookISBNList.ISBN = Books.ISBN RETURN @@IDENTITY
END
GO
private void InitializeComponent()
{ this.cmdInsertGiftbook.CommandText = "dbo.[spInsertGiftbook]";
this.cmdInsertGiftbook.CommandType = System.Data.CommandType.StoredProcedure;
this.cmdInsertGiftbook.Connection = this.cnAddGiftbook;
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CustomerID", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ISBNList", System.Data.SqlDbType.NVarChar, 4000));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@UserName", System.Data.SqlDbType.NVarChar, 16));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@GiftbookTypeID", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Number", System.Data.SqlDbType.Int, 4));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ReleaseDatetime", System.Data.SqlDbType.DateTime, 8));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Feedback", System.Data.SqlDbType.NVarChar, 1073741823));
this.cmdInsertGiftbook.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Memo", System.Data.SqlDbType.NVarChar, 1073741823));
this.Load += new System.EventHandler(this.Page_Load); }cmdInsertGiftbook.ExecuteNonQuery(); int returnvalue = int.Parse(cmdInsertGiftbook.Parameters["@RETURN_VALUE"].Value.ToString()); if(returnvalue == 0)
{
lbResult.Text = "图书书号不正确。请检查是否存在相应的图书。";
}------这是可以执行出来的
else if(returnvalue == -3)
{
lbResult.Text = "该图书已经报废了。";
}---我想添加的怎么也不能返回参数存储过程如下:是在不知这个0是如何传递过去的
CREATE PROCEDURE dbo.spInsertGiftbook
(
@CustomerID int,
@ISBNList nvarchar(4000),
@UserName nvarchar(16),
@GiftbookTypeID int,
@Number int,
@ReleaseDatetime datetime,
@Feedback ntext,
@Memo ntext
)
AS
SET NOCOUNT OFF;--DECLARE @BookID int
--DECLARE @IsOutOfPrint int
DECLARE @ProvinceID intSELECT @ProvinceID = dbo.GetProvinceID(N'CustomerID', @CustomerID)-- 检查该用户针对该省份是不是有写权限
IF (dbo.CheckUserProvinceWriteInfo(@UserName, @ProvinceID) = 0)
RETURN -1SET @ISBNList = LTRIM(RTRIM(@ISBNList))SELECT LTRIM(RTRIM(SplitString)) AS ISBN INTO #TempBookISBNList FROM dbo.GetSplitString(@ISBNList, ',')/*
SELECT @BookID = BookID FROM Books WHERE (ISBN = @ISBN) --从Books中检索是不是有相应的书号IF (@BookID IS NULL) --如果没有相应的ID,表明该图书不存在
BEGIN
RETURN 0
END
*//*
SELECT @IsOutOfPrint = IsOutOfPrint FROM Books WHERE (ISBN = @ISBN) --从Books中检索是不是有相应的书号IF (@IsOutOfPrint=1) --如果没有相应的ID,表明该图书不存在
BEGIN
RETURN -3
END
*/--IF (SELECT COUNT(*) FROM Giftbooks WHERE CustomerID = @CustomerID AND BookID = @BookID) > 0
--BEGIN
-- SELECT @ReturnValue = 0
-- RETURN -2
--END
--ELSE
BEGIN
INSERT INTO Giftbooks (
CustomerID,
BookID,
UserName,
GiftbookTypeID,
Number,
ReleaseDatetime,
Feedback,
Memo
)
SELECT @CustomerID,
Books.BookID,
@UserName,
@GiftbookTypeID,
@Number,
@ReleaseDatetime,
@Feedback,
@Memo
FROM #TempBookISBNList INNER JOIN
Books ON #TempBookISBNList.ISBN = Books.ISBN RETURN @@IDENTITY
END
GO
解决方案 »
- C# asp.net 验证控件怎么验证单选框
- 请教
- 赐教 e.Item.FindControl("Label1").Controls未将对象引用设置到对象的实例。
- C#中的集合是指列表,队列,栈。这些数据结构吗?
- 真心求教Excel高手(一个星期没解决的问题)
- 怎么把一个arraylist传到页面的javascript里用
- 异常问题
- 能否利用C#编译器进行二次编译?
- webbrowser中自动点击弹出的javascript对话框中的确认按钮,我这样写正确吗?麻烦给看看
- dataGrid中的删除
- 请教C#中GDI+画的图怎样才能保存为bmp或jpg格式呢
- 请问:打包后,安装程序完成时,点完成按钮,如何这个时候希望运行这个安装好的程序?
却怎么也传递不回来!else if(returnvalue == -3)
{
lbResult.Text = "该图书已经报废了。";
}---我想的怎么也不能返回参数
//这里把连接关闭,后面就能得到返回值了
int returnvalue = int.Parse(cmdInsertGiftbook.Parameters["@RETURN_VALUE"].Value.ToString());
例如:CREATE PROCEDURE dbo.spInsertGiftbook
(
@CustomerID int,
@ISBNList nvarchar(4000),
@UserName nvarchar(16),
@GiftbookTypeID int,
@Number int,
@ReleaseDatetime datetime,
@Feedback ntext,
@Memo ntext,
@result int output --加在这里
)
然后在调用存储过程中改变@result的值,最后再使用int result = int.Parse(cmdInsertGiftbook.Parameters["@result"].Value.ToString)这样就应该可以了