"Specified cast is not valid?"
"Specified cast is not valid?"
我有一个用 c# 编写的代码,我想比较两个 "date" 值。
第一个值来自数据库,第二个值是字符串。
我尝试将它们转换为日期,但这是我一直遇到的错误
如果答案看起来如此明显,请耐心等待...我是 c# 的新手
string a, b;
label32.Text = DateTime.Now.ToString("dd/MM/yyyy");
b = label32.Text;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Rock.accdb";
con.Open();
var query1 = "SELECT datear FROM leave WHERE name='" + label14.Text + "'";
using (var command = new OleDbCommand(query1, con))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
//this is where i get error
a = reader.GetString(reader.GetOrdinal("datear")).ToString();
DateTime d = Convert.ToDateTime(a);
DateTime f = Convert.ToDateTime(b);
d.ToString("dd/MM/yyyy");
f.ToString();
if (d > f)
{
label30.Text = "On Campus";
}
else
{
label30.Text = "Off Campus";
}
}
}
} con.Close();
尝试使用DateTime.Parse()方法:
替换这部分:
DateTime d = Convert.ToDateTime(a);
DateTime f = Convert.ToDateTime(b);
d.ToString("dd/MM/yyyy"); // it just a call of a method, it doesn't change the state of the object
f.ToString(); // it too
收件人:
DateTime d = DateTime.Parse(a);
DateTime f = DateTime.Parse(b);
if (d > f)
{
label30.Text = "On Campus";
}
// and so on
替换这个a = reader.GetString(reader.GetOrdinal("datear")).ToString();
至此
a= reader.GetDateTime(0).ToString();
感谢大家花时间解决我的问题...
我有一个用 c# 编写的代码,我想比较两个 "date" 值。
第一个值来自数据库,第二个值是字符串。
我尝试将它们转换为日期,但这是我一直遇到的错误
如果答案看起来如此明显,请耐心等待...我是 c# 的新手
string a, b;
label32.Text = DateTime.Now.ToString("dd/MM/yyyy");
b = label32.Text;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Rock.accdb";
con.Open();
var query1 = "SELECT datear FROM leave WHERE name='" + label14.Text + "'";
using (var command = new OleDbCommand(query1, con))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
//this is where i get error
a = reader.GetString(reader.GetOrdinal("datear")).ToString();
DateTime d = Convert.ToDateTime(a);
DateTime f = Convert.ToDateTime(b);
d.ToString("dd/MM/yyyy");
f.ToString();
if (d > f)
{
label30.Text = "On Campus";
}
else
{
label30.Text = "Off Campus";
}
}
}
} con.Close();
尝试使用DateTime.Parse()方法:
替换这部分:
DateTime d = Convert.ToDateTime(a);
DateTime f = Convert.ToDateTime(b);
d.ToString("dd/MM/yyyy"); // it just a call of a method, it doesn't change the state of the object
f.ToString(); // it too
收件人:
DateTime d = DateTime.Parse(a);
DateTime f = DateTime.Parse(b);
if (d > f)
{
label30.Text = "On Campus";
}
// and so on
替换这个a = reader.GetString(reader.GetOrdinal("datear")).ToString();
至此
a= reader.GetDateTime(0).ToString();
感谢大家花时间解决我的问题...