如何使用datareader将scope_identity值存储到变量

时间:2017-03-17 07:17:55

标签: c# asp.net

objcon.GetReader(" insert into product(name,price)Values('" + txt_name.Text + "','" + txt_price.Text + "') select scope_identity() ");

if (objcon.dr.Read())
{
    var id = objcon.dr[0].ToString();
}

objcon.dr.Close();

我想将scope_identity值存储到变量中。上面的代码正在运行。但我没有得到变量id的值。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

我上次与ADO.Net直接合作已经有一段时间了,所以这可能不是100%准确。

ExecuteNonQuery()

SqlCommand对象非常适合执行不返回任何内容的查询或单个值

ExecuteScalar()返回受影响的行数。 F.ex.实际更新,插入或删除了多少行(注意:触发器可以影响此值)

SELECT TO_CHAR(date,'YYYY/MM/DD'), transaction FROM TABLE_NAME WHERE article is null AND salesamount > 1.0 GROUP BY TO_CHAR(date,'YYYY/MM/DD'), transaction 返回结果中第一行的第一列,并忽略其余的一行。它非常适合检索新插入的ID或计数或总和等。返回的类型是对象,但可以转换为期望的类型。