C# Access OleDB 分别添加时间和日期

C# Access OleDB add Time and date separately

我用 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.'

这就是我的 table 的样子 :

您可以简单地使用 DateTime 对象中的 Date 属性 来获取时间设置为零的 DateTime 部分,并使用 TimeOfDay 属性 来获取 DateTime 对象的时间部分作为 TimeSpan。

这应该有效...