【问题标题】:SQL Returned values length .NET C#SQL 返回值长度 .NET C#
【发布时间】:2016-05-13 09:10:23
【问题描述】:

在以下代码示例中,我调用了一个存储过程并取回了我存储在 var newstorevalue 中的数据集:

var newstorevalue = SqlHelper.ExecuteDataset(acf.AcConn(), "sp_selectbyname", valuetosend);

如何“查看”并存储返回的记录数?例如。我想打印一条消息:“程序返回 X 条记录”

我是开发新手。欢迎任何帮助!

【问题讨论】:

  • string myMsg = "Procedure returned " + newstorevalue.Tables[0].Rows.Count + " records";
  • @Fred 这对我有用。如果要在 UI 中打印返回值(通过 Angular for ex),我创建了以下代码:payload.valuesreturned = newstorevalue.Tables[0].Rows.Count;但是我需要在退货声明中放置什么?回什么?? (虚拟问题)
  • 给我们看功能码
  • @Fred public ActionResult NameNumberResult(ItemEventNameDTO payload) { var valuetosend = payload.itemname; var acf = new AcFunctions(); var newstorevalue = SqlHelper.ExecuteDataset(acf.AcConn(), "sp_selectbyname", valuetosend); payload.valuesreturned = newstorevalue.Tables[0].Rows.Count; return ???; }

标签: c# sql stored-procedures


【解决方案1】:

我不知道,但我想你的 spHelper.ExecuteDataset 应该返回一个 DataSet ?

如果我是正确的,那么你应该在这里得到回复:

var count = newstorevalue.Datatables[0].Count;

【讨论】:

    【解决方案2】:

    最简单的方法是获取newstorevalue.Tables[0].Rows.Count的值

    您没有指定是哪个数据库(我想是 Oracle)。在这种情况下,您可以尝试使用函数获取值

    SqlHelper.ExecuteScalar(...)

    读取使用 Oracle 表函数的查询的(数字)结果:

    从表中选择计数(*)(sp_selectbyname(参数));

    首先在 sql 控制台中尝试此操作。应该工作。

    再见。

    马里奥。

    【讨论】:

    • 为什么要再次调用数据库?
    • 我不知道具体的用例..可能会执行对 executescalar 的调用而不是对 executedataset 的调用。我提出了两种不同的解决方案..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多