我想提供一个Web服务,供用户插入或更新表中的某些值。用户输入一个ID和三个参数。如果ID不存在于数据库中,我想返回0,失败或类似。当我测试下面的代码并提供一个不存在的存储过程时,存储过程返回1单元格(返回值)为0,但状态设置为1.我想这是因为我在执行查询时使用了ToString()它返回1个单元格。那么我应该如何改进下面的代码?ExecuteNonQuery和返回值从SQL Server,C#
我有这样的代码的方法:
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)
提前致谢。
尝试使用的ExecuteScalar() – KaeL 2011-03-24 06:47:55