【发布时间】:2019-10-31 08:56:59
【问题描述】:
我正在尝试使用 CAST 查询从 access 数据库加载数据,以在 c# 中将数据类型更改为日期。但是当我在文本框中输入参数的日期参数时,它给了我 ierrorinfo.getdescription failed with e_fail .
代码
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string start = textBox1.Text;
string end = textBox2.Text;
string query = "SELECT dbo_RSWORKORDERCUR.workordercurID,dbo_RSWORKORDERCUR.workordercode,CAST(dbo_RSWORKORDERCUR.closeDtime AS DATE) AS [Close Date],CAST(dbo_RSWORKORDERCUR.RequiredbyDtime AS DATE) AS [Required By Date] " +
"FROM dbo_RSWORKORDERCUR1 " +
"WHERE (((CAST(dbo_RSWORKORDERCUR.closeDtime AS DATE))>=@start And (CAST(dbo_RSWORKORDERCUR.closeDtime AS DATE))<=@end));";
command.Parameters.Add(new OleDbParameter("@start", start));
command.Parameters.Add(new OleDbParameter("@end", end));
command.CommandText = query;
OleDbDataAdapter da = new OleDbDataAdapter(command);
DataTable dt5 = new DataTable();
da.Fill(dt5);
dataGridView1.DataSource = dt5;
connection.Close();
【问题讨论】:
-
哪一行导致了错误。尝试调试。还可以尝试指定参数的数据类型,例如:command.Parameters.Add("@start", OleDbType.DBTimeStamp)
-
应该在dataGridView1.DataSource = dt5;当我使用断点运行时,它会弹出错误。
-
我认为Ms-Access中没有Cast功能,请改用Cdate。