代码之家  ›  专栏  ›  技术社区  ›  Sev

ASP.NET C SQL计数(*)

  •  1
  • Sev  · 技术社区  · 16 年前

    我有一个在c.cs文件中运行的查询:

    DataSet ds = db.ExecuteDataSet(System.Data.CommandType.Text, "SELECT count(*) as counter FROM [Table] where [Table].[Field] = 'test'");
    

    我要做的是在这个查询中检索“counter”的值,并“返回”它作为我的函数返回值。

    我该怎么做?

    3 回复  |  直到 16 年前
        1
  •  11
  •   Tomas Aschan    16 年前

    因为SQL查询不会返回数据集,而是返回 标量 ,您应该使用 .ExecuteScalar() 方法:

    int count = (int)db.ExecuteScalar(System.Data.COmmandType.Text, "SELECT count(*) as counter FROM [Table] where [Table].[Field] = 'test'");
    

    (如果你告诉我们 db 实例属于…)

        2
  •  1
  •   Juliet    16 年前
    DataSet ds = db.ExecuteDataSet(System.Data.CommandType.Text, "SELECT count(*) as counter FROM [Table] where [Table].[Field] = 'test'");
    return Convert.ToInt32(ds.Tables[0].Rows[0]["counter"]);
    
        3
  •  -2
  •   JonH    16 年前

    您也不应该使用内联SQL。 此select count应全部抛出到存储过程中。 应该从应用程序数据访问层调用存储过程。

    这就是可重用性的切入点,您开始注意到您可能只需要在网站/客户机应用程序的不同位置调用这个函数。

    只是一些提示!