C# 从MySQL设置WinForm显示日期
C/MySQL-设置WinForm访问日期MySQL 因此,我创建了一个MySQL数据库,我的表单可以访问并登录该数据库。我的目标是能够将MySQL数据库中的信息作为标签拉入表单中,我知道这很容易,对吧 例如: 对我来说,最困难的问题是如何存储,比如说订阅的开始/结束日期,并能在标签上告诉我订阅还剩多少天。所有这些都使用数据库的信息 是,该数据库仅用于测试目的。否,接近最终版本 创建了一个名为edata的表。 创建程序将使用的字段 账户状态/StartSub/EndSubC# 从MySQL设置WinForm显示日期,c#,mysql,winforms,C#,Mysql,Winforms,C/MySQL-设置WinForm访问日期MySQL 因此,我创建了一个MySQL数据库,我的表单可以访问并登录该数据库。我的目标是能够将MySQL数据库中的信息作为标签拉入表单中,我知道这很容易,对吧 例如: 对我来说,最困难的问题是如何存储,比如说订阅的开始/结束日期,并能在标签上告诉我订阅还剩多少天。所有这些都使用数据库的信息 是,该数据库仅用于测试目的。否,接近最终版本 创建了一个名为edata的表。 创建程序将使用的字段 账户状态/StartSub/EndSub 我的问题:我将如何获取
我的问题:我将如何获取输入的日期,并创建一个可以用于在“剩余天数”标签中显示的值?如果您可以解析出这些值,它非常简单,例如:
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();
我将创建如下表:
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";
}
}
}
然后像这样查询:
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";
}
}
}
谢谢你!工作得很好。我对小数点做了一个小的调整。label4.Text=ts.TotalDays.ToString.+还剩几天;