C#/ MySQL - 设置WinForm访问日期MySQL
所以我创建了一个我的表单能够访问的MySQL数据库&登录到。我的目标是能够将MySQL数据库中的信息作为标签提取到表单中(我知道这很简单吗?)。
示例:
对我来说最难的问题是找出如何存储让我们说“订阅”开始/结束日期,并能够在标签上告诉我,我订阅了多少天。所有这些都使用了数据库的信息。
(是的,这个数据库仅用于测试目的,不在最终的附近。)
我的问题:如何获取输入的日期并创建一个值,我可以用它来显示“Days Left Here”标签?
答案 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";
}
}
}