从MySQL设置WinForm显示日期

时间:2014-09-20 01:11:11

标签: c# mysql winforms

C#/ MySQL - 设置WinForm访问日期MySQL

所以我创建了一个我的表单能够访问的MySQL数据库&登录到。我的目标是能够将MySQL数据库中的信息作为标签提取到表单中(我知道这很简单吗?)。

示例:

对我来说最难的问题是找出如何存储让我们说“订阅”开始/结束日期,并能够在标签上告诉我,我订阅了多少天。所有这些都使用了数据库的信息。

(是的,这个数据库仅用于测试目的,不在最终的附近。)

  • 创建了一个名为edata的表。 程序将使用的创建字段 (帐户状态/ StartSub / EndSub)

我的问题:如何获取输入的日期并创建一个值,我可以用它来显示“Days Left Here”标签?

2 个答案:

答案 0 :(得分:0)

如果你可以解析这些值,那很简单,例如:

string end_date_string = "2014-09-24";
string start_date_string = "2014-09-18";

DateTime end_date = DateTime.Parse(end_date_string);         // parse end date
DateTime start_date = DateTime.Parse(start_date_string);     // parse start date
TimeSpan dur = end_date.Subtract(start_date);                // total duration
TimeSpan timeleft = end_date.Subtract(DateTime.Now);         // how much time left until we hit the end_date

Label l;
l.Text = timeleft.Days.ToString();
// l.Text = timeLeft.Hours.ToString();
// l.Text = timeleft.Minutes.ToString();

答案 1 :(得分:0)

我将创建这样的表:

CREATE TABLE `test`.`New Table` (
  `ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `FirstName` VARCHAR(45),
  `LastName` VARCHAR(45),
  `Username` VARCHAR(45),
  `Password` VARCHAR(45),
  `Account` INTEGER UNSIGNED,
  `StartSub` DATETIME,
  `EndSub` DATETIME,
  PRIMARY KEY (`ID`)
)
ENGINE = InnoDB;

然后像这样查询:

using (MySqlConnection conn = new MySqlConnection(constring))
{
    using (MySqlCommand cmd = new MySqlCommand())
    {
        cmd.Connection = conn;
        conn.Open();

        cmd.CommandText = "select * from edata where id = 1;";
        MySqlDataAdapter da = new MySqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);

        conn.Close();

        DateTime dateStart = Convert.ToDateTime(dt.Rows[0]["StartSub"]);
        DateTime dateEnd = Convert.ToDateTime(dt.Rows[0]["EndSub"]);

        if (DateTime.Now >= dateStart && DateTime.Now <= dateEnd)
        {
            TimeSpan ts = dateEnd - DateTime.Now;
            label1.Text = "Active";
            label2.Text = ts.TotalDays + " day(s) left";
        }
        else
        {
            label1.Text = "Expired";
            label2.Text = "0 day left";
        }
    }
}