【发布时间】:2016-12-07 21:39:11
【问题描述】:
这是插入数据的BL类:
public string CategoryIsert(clsCategoryPL objCategory, out int returnId)
{
returnId = 0;
try
{
var db = new KSoftEntities();
var category = new tblCategory
{
Name = objCategory.Name,
ParentCategoryID = objCategory.ParentCategoryID,
description = objCategory.description,
image = objCategory.image,
Status = objCategory.Status
};
//db.AddTotblCategories(category);
db.tblCategories.Add(category);
db.SaveChanges();
returnId = category.CategoryID;
}
catch (Exception ex) { }
if (returnId > 0)
return "User Inserted Successfully";
else
return "Error on insertion";
}
增值的aspx代码:
private int AddCategory()
{
clsCategoryBL objcategory = new clsCategoryBL();
clsCategoryPL objCategoryPL = new clsCategoryPL();
int retnid = 0;
objCategoryPL.description = txtCategoryDescription.Text;
objCategoryPL.Name = txtCategoryName.Text;
objCategoryPL.ParentCategoryID = Convert.ToInt32(ddlParentCategory.SelectedValue);
objCategoryPL.Status = true;
objcategory.CategoryIsert(objCategoryPL, out retnid);
if (retnid > 0)
{
if (Convert.ToInt32(ddlParentCategory.SelectedValue) == 0)
{
objCategoryPL.ParentCategoryID = retnid;
}
objCategoryPL.CategoryID = retnid;
string strMessage = objcategory.CategoryUpdate(objCategoryPL);
}
return retnid;
}
我在数据库中创建了一个存储过程:
CREATE PROCEDURE [dbo].[Sp_Checknm_Cat]
@ID int,
@NAME nvarchar(400),
@Count INT = 0
AS
BEGIN
DECLARE @output int
IF(@ID > 0)
BEGIN
SET @Count = (select count(*) from tblCategory
where Name = @NAME and CategoryID <> @ID)
END
ELSE
BEGIN
SET @Count = (select count(*) from tblCategory where Name = @NAME)
END
IF(@Count > 0)
BEGIN
SET @output = 0
END
ELSE
BEGIN
SET @output = 1
END
RETURN @output
END
我想在插入/更新期间检查该名称是否已经存在,然后它会在标签中显示一条错误消息
那么哪里需要改变呢?
这是给 bl 的:
ClsDB objdb = new ClsDB();
public Int32 InsertnmCheck(int id, string nm)
{
DataTable dtdonor = new DataTable();
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@ID", SqlDbType.Int);
param[0].Direction = ParameterDirection.Input;
param[0].Value = id;
param[1] = new SqlParameter("@NAME", SqlDbType.NVarChar);
param[1].Direction = ParameterDirection.Input;
param[1].Value = nm;
int a = objdb.insert_delete_update("[Sp_Checknm_Cat]", param);
return a;
}
这是我的后端代码:
else if (btnSubmit.CommandName == "Add")
{
clsCategoryBL obj = new clsCategoryBL();
Int32 dt = obj.InsertnmCheck(0, txtCategoryName.Text);
// DataTable dt = obj.InsertnmCheck(0, txtCategoryName.Text);
{
}
int retid = AddCategory();
if (retid > 0)
{
}
问题是查询(sp)返回 0 但在 bl 类中它将返回 -1 那么有什么解决办法吗??
【问题讨论】:
-
“不返回错误代码。”您的返回字符串具有有效或无效的魔术值是错误代码。 blogs.msdn.microsoft.com/kcwalina/2005/03/16/…
-
我该怎么办??如果我没有返回,我该如何检查??
-
如果我返回 true 或 false,它将显示错误..语法错误
-
true 或 false 仍然是返回码。该方法应该是“void”,并且应该抛出或不抛出异常。
标签: c# asp.net sql-server