显示网格视图中的行数

用户名

我正在尝试使用标签从网格视图显示行数。我使用了SQL Count语句,但是它不起作用。问题是我只得到标签中显示的数字1,该数字与我表中的行数不匹配!我已经发布了类似的问题,但不幸的是没有人给出明确的答案!

我的代码为:

购物篮

  public int td()
   {
       int customers;
        //I tried this select query but still gets number 1
       //String sql = String.Format("SELECT COUNT(*) FROM dbo.Baskets");
       string sql = string.Format("SELECT COUNT(*) FROM Baskets");
       customers = Db.RunQuery(sql).Rows.Count;

       //customers = Convert.ToInt32(Db.RunQuery(sql).Rows.Count);
       return customers;


    }

数据库连接

 public class DataBaseConn
  {
   SqlConnection conn;
   SqlCommand cmd;
   DataTable tbl;
   private void Intialise(CommandType commandtype, string DataBase)
   {

    conn = new SqlConnection();
    cmd = new SqlCommand();

    //Requirements
    conn.ConnectionString = ConfigurationManager.ConnectionStrings[1].ToString();
    cmd.Connection = conn;
    cmd.CommandType = commandtype;
    cmd.CommandText = DataBase;
    conn.Open();
  }

 public int RunProcedure(string Procedure, SortedList ParameterV)
  {

    Intialise(CommandType.StoredProcedure, Procedure);


    for (int i = 0; i < ParameterV.Count; i++)


        try
        {
            if (ParameterV.GetByIndex(i) != null)
                cmd.Parameters.AddWithValue(ParameterV.GetKey(i).ToString(), 
                                                 PrameterV.GetByIndex(i).ToString());
        }
        catch { ;}

    return RunUpdate();

   }

  public int RunUpdate(string InsDelUpd)
   {

    Intialise(CommandType.Text, InsDelUpd);
    return RunUpdate();

  }

   private int RunUpdate()
   {
    try
   {      
        int x = cmd.ExecuteNonQuery();
        conn.Close();
        return x;
     }
     catch (SqlException ex)
      {
        conn.Close();
        return ex.Number;
      }

   }

  public DataTable RunQuery(string Select)
   {
    Intialise(CommandType.Text, Select);
    tbl = new DataTable();
    tbl.Load(cmd.ExecuteReader());
    conn.Close();
    return tbl;

   }
 public bool EData(string selection)
  {

    if (RunQuery(selection).Rows.Count > 0)
        return true;
    else
         return false;

    }


 }

Basket.aspx

    lblQueue.Text = _b.td().ToString();
斯图尔特

您不想返回数据表的.Rows.Count-1 row(s) affected对于您的count(*)查询,该值始终为1(如所示

您应该改用ExecuteScalar查询从查询​​中返回第一行的第一列

我不确定如何将其构建到DataBaseConn数据助手类中,但是要点是您需要按以下顺序进行:

using (var conn = new SqlConnection(connectionStringHere))
using (var cmd = new SqlCommand(conn))
{
   cmd.CommandType = CommandType.Text;
   cmd.CommandText = "SELECT COUNT(*) FROM Baskets";
   return (int)cmd.ExecuteScalar();
}

编辑

如果您无法使用扩展您的DataBaseConn帮助器ExecuteScalar,那么我想您将可以使用RunQuery返回DataTable的现有方法。只需刮擦第一行的第一列,如下所示:

return Db.RunQuery(sql).Rows[0].Field<int>(0);

附带说明一下,您可能会考虑将其DataHelper完全替换为Microsoft模式和实践数据应用程序访问块(DAAB),或者,如果愿意,可以考虑使用诸如Entity Framework之类的ORM 通过升级到主流的数据访问封装,您将不需要花费很多时间来调试像这样的数据访问问题:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在网格视图中显示数据

来自分类Dev

网格线未显示在网格视图中

来自分类Dev

网格线未显示在网格视图中

来自分类Dev

文本视图未显示在带有图像的网格视图中

来自分类Dev

在列表视图中显示从数据表中找到的行数

来自分类Dev

如何使用codeigniter在视图中显示行数据的总和?

来自分类Dev

Yii2在网格视图中显示行号

来自分类Dev

在网格视图中显示SQL Server NULL值文本

来自分类Dev

如何在网格视图中显示NULL值?

来自分类Dev

如何在网格视图中显示菜单项

来自分类Dev

上传的图像未显示在我的网格视图中

来自分类Dev

在数据网格视图中显示最新数据

来自分类Dev

使用全选下拉列表并在网格视图中显示

来自分类Dev

在数据网格视图中显示列表项C#

来自分类Dev

在网格视图中基于变量显示图像

来自分类Dev

如何在网格视图中显示表格?

来自分类Dev

上载的图像未显示在我的网格视图中

来自分类Dev

使用MVC Razor @foreach在视图中显示多个剑道网格

来自分类Dev

网格视图中的选定行

来自分类Dev

网格视图中的选定行

来自分类Dev

tk_messageBox在网格视图中显示错误的显示,但在包装中没问题

来自分类Dev

显示数据网格视图

来自分类Dev

多行数据网格视图单元格仅显示第一行

来自分类Dev

在视图中显示Json

来自分类Dev

在视图中显示Viewmodel

来自分类Dev

在视图中显示Json

来自分类Dev

在视图中显示 ICollection

来自分类Dev

使用通用图像加载器在Android网格视图中滚动时重复显示图像

来自分类Dev

如何实现点击监听器以全屏显示此网格视图中的每个图像?