c# - C# Access OleDB 分别添加时间和日期
问题描述
我在 C# 中构建了一个程序来替换 VB6 中的旧程序,我必须使用这个旧数据库并且无法更改它红色表示日期,蓝色表示时间但我不知道如何在 C# 中做到这一点我有一个 DateTime只要
我该如何添加它?
我的代码:
public void GetExternalTestObjectList(DateTime DateTest,DateTime TimeTest,
string NuTest,string Typebat,string TxtNuSidra,int NuTestBat,string NuCod,
int numtest,double OCV,string FaultOCV,double CCV,string FaultCCV,double dccvocv,
string Name,int focvn, int fccvn, int nchek, int fotd, double eqfolt,
string tc, string cc, string oclc, string ochc, string cclc, string cchc,
double dccvocvsc, string dccvocvn, double dccvocvnN, double dccvocvscl)
{
try
{
using (OleDbConnection openCon = new OleDbConnection(localConnectionString))
{
string query = "INSERT into [data] ([Date Test], [Time Test]," +
"[Nu' Test],[Type bat],[TxtNuSidra],[Nu' Test bat],[Nu' Cod]," +
"[numtest],[OCV],[Fault OCV],[CCV],[Fault CCV],[dccvocv],[Name]," +
"[focvn],[fccvn],[nchek],[fotd],[eqfolt],[tc],[cc],[oclc],[ochc]," +
"[cclc],[cchc],[dccvocvsc],[dccvocvn],[dccvocvnN],[dccvocvscl]) " +
"VALUES (@DateTest, @TimeTest, @NuTest, @Typebat, @TxtNuSidra," +
"@NuTestBat, @NuCod,@numtest, @OCV, @FaultOCV, @CCV, @FaultCCV, @dccvocv, " +
"@Name,@focvn, @fccvn, @nchek, @fotd, @eqfolt, @tc, @cc, @oclc, @ochc, @cclc," +
"@cchc, @dccvocvsc, @dccvocvn, @dccvocvnN, @dccvocvscl)";
using (OleDbCommand command = new OleDbCommand(query))
{
command.Parameters.AddWithValue("@DateTest", DateTest);
command.Parameters.AddWithValue("@TimeTest", TimeTest);
command.Parameters.AddWithValue("@NuTest", NuTest);
command.Parameters.AddWithValue("@Typebat", Typebat);
command.Parameters.AddWithValue("@TxtNuSidra", TxtNuSidra);
command.Parameters.AddWithValue("@NuTestBat", NuTestBat);
command.Parameters.AddWithValue("@NuCod", NuCod);
command.Parameters.AddWithValue("@numtest", numtest);
command.Parameters.AddWithValue("@OCV", OCV);
command.Parameters.AddWithValue("@FaultOCV", FaultOCV);
command.Parameters.AddWithValue("@CCV", CCV);
command.Parameters.AddWithValue("@FaultCCV", FaultCCV);
command.Parameters.AddWithValue("@dccvocv", dccvocv);
command.Parameters.AddWithValue("@Name", Name);
command.Parameters.AddWithValue("@focvn", focvn);
command.Parameters.AddWithValue("@fccvn", fccvn);
command.Parameters.AddWithValue("@nchek", nchek);
command.Parameters.AddWithValue("@fotd", fotd);
command.Parameters.AddWithValue("@eqfolt", eqfolt);
command.Parameters.AddWithValue("@tc", tc);
command.Parameters.AddWithValue("@cc", cc);
command.Parameters.AddWithValue("@oclc", oclc);
command.Parameters.AddWithValue("@ochc", ochc);
command.Parameters.AddWithValue("@cclc", cclc);
command.Parameters.AddWithValue("@cchc", cchc);
command.Parameters.AddWithValue("@dccvocvsc", dccvocvsc);
command.Parameters.AddWithValue("@dccvocvn", dccvocvn);
command.Parameters.AddWithValue("@dccvocvnN", dccvocvnN);
command.Parameters.AddWithValue("@dccvocvscl", dccvocvscl);
command.Connection = openCon;
openCon.Open();
int recordsAffected = command.ExecuteNonQuery();
openCon.Close();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
我得到了下一个错误:
System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression.'
这就是我的桌子的样子:
解决方案
您可以简单地使用 DateTime 对象中的 Date 属性来获取 DateTime 部分,并将零设置为时间,并使用 TimeOfDay 属性来获取 DateTime 对象的时间部分作为 TimeSpan。
这应该工作...
推荐阅读
- javascript - Chrome 调试器:有没有办法在对象中搜索特定键?
- function - 从存储在结构中引用的函数不会放弃所有权
- android - 使用带有两个附件的已发送电子邮件意图
- python - 带有“for”循环和“if”语句的 Python 'in' 运算符
- python - PyQt5:RuntimeError:类型为 FigureCanvasQTAgg 的包装 C/C++ 对象已被删除
- ruby-on-rails - 在 Rails JSONB 列中使用数组
- python - 从用户输入中获取返回变量以传递给不同的模块
- typescript - 打字稿不忽略 node_modules
- php - 使用 INNER JOIN 时爆炸
- css - Angular(7)材质工具栏+Sidenav;台式机与移动设备的高度差异问题(包括 stackblitz 示例)