0

我正在用 C# 开发移动应用程序。我正在使用 SQLite 数据库来存储数据。在 SQLite 数据库中,我存储与客户相关的信息。因为我以 mm/dd/yy 12:54:30 PM 格式存储日期。现在我想根据开始日期和结束日期检索客户数据。我正在使用以下代码

ShowRegistrationKeyDetails ShowRegKeyDetailsObj = new ShowRegistrationKeyDetails();
// set properties
          ShowRegKeyDetailsObj.FromDate = FromdateTimePicker.Value.ToString();
        ShowRegKeyDetailsObj.ToDate = TodateTimePicker.Value.ToString();

当我根据这些值触发 SQL 查询时,我没有得到正确的结果。我需要将 FromdateTimePicker.Text 和 TodateTimePicker.Text 的上述值转换​​为 mm/dd/yy 12:54:30 PM 格式。我正在使用以下代码

public SQLiteDataReader getClient_And_RegistrationKeys(int Customer_ID, String FromDt, String ToDt)
    {
        SQLiteDataReader SQLLiteDrObj = null;
        DataManager myDatabase = new DataManager("CompNet.db");
        myDatabase.Init(false);

        string[] Parameter = new string[] { "@Val_Customer_ID", "@Val_FromDt", "@Val_ToDt" };
        Object[] Objval = new Object[] { Customer_ID, FromDt, ToDt };

        string sqlCommandText = "Select Activation_Date, Standard_ID, Client_Key, Registration_Key from Activation_Details where Customer_ID=@Val_Customer_ID And Activation_Date between @Val_FromDt And @Val_ToDt";
        SQLLiteDrObj = myDatabase.ExecuteReader(sqlCommandText, Parameter, Objval);

        return SQLLiteDrObj;
    }

我试过这段代码。现在我得到了我想要的格式的日期,但我没有得到所需的行作为输出。输出中没有行。我哪里错了?你能给我提供任何代码吗?

4

1 回答 1

7

不要使用Text开头 - 用于DateTimePicker.Value获取值作为DateTime.

理想情况下,在使用 SQLite 时也不要将其转换为文本 - 使用参数化查询而不是格式化它。请参阅本文作为使用 SQLite 的 C# 参数化查询的示例。

作为一般规则,尽量避免阅读文本。这对于向用户显示值非常有用,但对于确信您拥有正确的数据而不必小心不同的格式等则很糟糕。

于 2010-10-14T07:39:40.963 回答