C# - SQL查询返回受影响的项目

时间:2015-11-18 14:23:53

标签: c# sql-server

我有一个SQL查询,它创建一个临时表,在其中插入记录,然后根据需要插入新记录或更新现有记录来迭代这些记录。我把它们计算为2个局部变量'@updated'和'@inserted'。我想在我添加的查询结束时返回这些值:

SELECT @updates as UPDATES, @inserted AS INSERTED

当我从QA运行我的查询时,我得到正确的输出,说明更新和插入的记录。但是,当我从C#运行查询时,我正在使用

SqlDataReader myReader = command.ExecuteReader();
if (myReader.Read())
{
    updates = myReader.GetInt32(0);
    inserts = myReader.GetInt32(1);
}

但我得到一个例外,因为它说数据为空。根据字段计数,返回行中有2个字段,但它们都为空。不确定为什么?

2 个答案:

答案 0 :(得分:0)

正如Brett所说 - 将其移植到存储过程中。我相信你以后会很高兴。

MIGHT给你一个问题的另一件事是类型(在c#end上)

因此,我确保您将结果转换为INT。

SELECT CONVERT(INT, @updates) as UPDATES, CONVERT(INT, @inserted) AS INSERTED

答案 1 :(得分:0)

全部感谢 - 你让我走上了正确的轨道让我知道它看起来是正确的。原来是一个菜鸟错误 - 我正在增加@updates和@inserts,但我没有先将它初始化为0,所以查询实际上按预期工作。不知道为什么它在质量保证中起作用,但现在就开始了。