如何将日期从DateTimePicker控件转换为mm / dd / yy 12:54:30 PM格式(当前日期时间格式)?

时间:2010-10-14 07:35:14

标签: c# sqlite compact-framework datetimepicker

我正在用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;
    }

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

1 个答案:

答案 0 :(得分:7)

请勿使用Text开头 - 使用DateTimePicker.Value将值设为DateTime

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

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