【发布时间】:2011-03-24 06:29:25
【问题描述】:
我想为用户提供一个网络服务来插入或更新表格中的一些值。用户输入一个 ID 和三个参数。如果数据库中不存在 ID 我想返回 0,失败或类似。当我测试下面的代码并提供一个不存在的 ID 时,存储过程返回 1 个单元格(返回值)和 0,但状态设置为 1。我猜这是因为我在执行查询时使用了 ToString()它返回 1 个单元格。那么我应该如何改进下面的代码呢?
我在方法中有这段代码:
string status = "";
SqlParameter[] param = {
new SqlParameter("@ID", ID),
new SqlParameter("@Flag", Flag),
new SqlParameter("@C_Interval", C_Interval),
new SqlParameter("@D_Interval", D_Interval)
};
status = DatabaseHelper.ExecuteNonQuery("sp_InsertInstruction", param);
return status;
在 ExecuteNonQuery 中,我将存储过程命令传递给数据库
// skipped some of the code this example
status = cmd.ExecuteNonQuery().ToString();
return status;
我的存储过程如下:
ALTER PROCEDURE dbo.sp_InsertInstruction
@Flag char(1) = null,
@C_Interval int=null,
@D_Interval int=null,
@ID char(20),
AS
DECLARE @Entity_ID int
SET @Entity_ID = (SELECT ID FROM Entity WHERE ID = @ID)
INSERT INTO Instructions(Flag, C_Interval, D_Interval, Entity_ID)
VALUES (@Flag, @C_Interval, @D_Interval, @Entity_ID)
提前致谢。
【问题讨论】:
标签: c# sql-server