如何在标签文字中显示计数?

时间:2015-03-14 12:30:41

标签: c# mysql

我很难将我的计数代码显示在我的标签文字中。这是我的代码,请告诉我如何解决这个问题。

ordering_and_billing.dBase dBase = new ordering_and_billing.dBase();
var mydbconnection = new dBase.dbconnection();

string sql = "SELECT * FROM `order` WHERE eventdate='" + lbldte.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, mydbconnection.Connection);
mydbconnection.Connection.Open();
MySqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
    while (rdr.Read())
    {
        Int32 count = (Int32)cmd.ExecuteScalar();
        string disp = count.ToString();
        lblcount.Text = disp;
    }
}

3 个答案:

答案 0 :(得分:5)

只需使用count功能:

string sql = "SELECT COUNT(*) FROM `order` WHERE eventdate='" + lbldte.Text + "'";

也不要使用ExecuteReader,如果您想要一个像计数值这样的值,请使用ExecuteScalar函数:

lblcount.Text =cmd.ExecuteScalar().toString();

答案 1 :(得分:0)

如果你想要的只是记录数,你应该使用SELECT COUNT(*)

string sql = "SELECT COUNT(*) FROM `order` WHERE eventdate='" + lbldte.Text + "'";

但是,请记住rdr.Read()从sql查询中读取新行。 每次时间你得到一个新行,你试图重新运行sql命令(我猜是崩溃),然后分配count标签。因此,您尝试分配count标签计数次。请改用此构造:

int count = 0;
while (rdr.Read())
{
    count++;
}
lblcount.Text = count.ToString(); //only assigns to the Text property once

答案 2 :(得分:-1)

不管怎样,我现在得到了答案。

ordering_and_billing.dBase dBase = new ordering_and_billing.dBase();
var mydbconnection = new dBase.dbconnection();

string sql = "SELECT * FROM `order` WHERE eventdate='" + lbldte.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, mydbconnection.Connection);
mydbconnection.Connection.Open();
MySqlDataReader rdr = cmd.ExecuteReader();
int count = 0;
while (rdr.Read())
{
    count ++;
}
lblcount.Text = count.ToString();