插入SQL表并检索对象

时间:2013-06-18 03:27:09

标签: c# sql sql-server sql-server-2008

我想在名称表(tName)中插入名称,在Name类中插入数据库属性,然后创建了一个模型Add方法,将值添加到数据库中。< / p>

然后我想返回带有最后添加参数的na对象。

我该怎么做?

public Name Add(string name)
{
    Name na = new Name();
    using (DatabaseCommand cmd = 
                     new DatabaseCommand("INSERT INTO tName (NA) values (@nm)"))
    {
        cmd.Parameters.AddWithValue("@nm", name);
        int created=cmd.ExecuteNonQuery();
        if (created == 1)
        {

        }
        return na;
    }
}

1 个答案:

答案 0 :(得分:3)

您熟悉OUTPUT声明的可选INSERT子句吗?您可以执行以下查询:

INSERT INTO tName (NA)
OUTPUT INSERTED.ID, INSERTED.tName
VALUES (@nm)

这允许您输出新创建的插入行的ID。详细了解OUTPUT条款here

当然,如果您使用C#执行此操作,则必须使用ExecuteReader而不是ExecuteNonQuery,因为我们现在对查询的返回值感兴趣,而不仅仅是{行受影响。详细了解ExecuteReader here