我得到了一个非常好的人的帮助,他为我提供了以下代码: 该代码运行良好并显示剩余天数,但我需要它是一个 int,以便我可以创建一个 if 方法来检查他们的订阅是否结束。
cmd.CommandText = "SELECT DATEDIFF(end_date, NOW()) FROM `as_users` WHERE username = '" + this.username_txt.Text + "'";
conn.Open();
MySqlCommand SelectCommand = new MySqlCommand("SELECT DATEDIFF(NOW(), end_date)'", conn);
int daysLeft = (int)cmd.ExecuteScalar();
MessageBox.Show("Days Left: " + cmd.ExecuteScalar());
if (daysLeft => 0)
{
MessageBox.Show("expired");
}
}
我收到此错误 无法将类型“object”隐式转换为“int”
最佳答案
正如所 promise 的,这里是代码更新。您需要正确转换它。你安implicit转换,您需要的是 explicit转换。
cmd.CommandText = "SELECT DATEDIFF(end_date, NOW()) FROM `as_users` WHERE username = '" + this.username_txt.Text + "'";
conn.Open();
int daysLeft = Convert.ToInt32(cmd.ExecuteScalar());
MessageBox.Show("Days Left: " + daysLeft );
if (daysLeft >= 0)
{
MessageBox.Show("expired");
}
关于C# 对象转为 MYSQL datediff 的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21150802/