Как преобразовать дату из элемента управления DateTimePicker в формат мм / дд / гг 12:54:30 (текущий формат даты и времени)? - PullRequest
0 голосов
/ 14 октября 2010

Я занимаюсь разработкой мобильного приложения на 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 в формат мм / дд / гг 12:54:30. Я использую следующий код

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 Ответ

7 голосов
/ 14 октября 2010

Не используйте Text для начала - используйте DateTimePicker.Value, чтобы получить значение как DateTime.

В идеале, тогда не используйте его для преобразования в текст при использовании SQLite - используйте параметризованный запрос, а не форматируйте его вообще. См. эту статью как один из примеров использования параметризованных запросов из C # с SQLite.

Как правило, старайтесь по возможности избегать просмотра текста. Он отлично подходит для отображения значений для пользователей, но очень жаль, что вы уверены, что получили правильные данные, не заботясь о разных форматах и ​​т. Д.

...