簡體   English   中英

使用WPF從SQLite數據庫中讀取日期時間值並將其分配給C#中的datepicker

[英]Reading a datetime value from a SQLite database and assigning it to datepicker in C# using WPF

我想從SQLite數據庫讀取datetime值,並將其分配給datepicker控件。

這是我的代碼:

try
{
    sqlitecon.Open();
    string Query = "Select * from Customer_New where Cust_Id='" + val + "'  ";
    SQLiteCommand createCommand = new SQLiteCommand(Query, sqlitecon);
    //  createCommand.ExecuteNonQuery();
    SQLiteDataReader dr = createCommand.ExecuteReader();
    while(dr.Read()){
        date_open.DisplayDate = Convert.ToDateTime(dr.GetString(0));
        Date_Joining.DisplayDate = Convert.ToDateTime(dr.GetString(1));     
        txt_Title.Text = dr.GetString(3);
        txt_cardnum.Text =dr.GetString(4)          
    }                
    sqlitecon.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

但是出現此錯誤:“指定的轉換無效”。 如何做呢?。

如果您已經從數據庫獲取DateTime ,則不應將其轉換為字符串。 然后使用:

date_open.DisplayDate = dr.GetDateTime(0);

代替

date_open.DisplayDate = Convert.ToDateTime(dr.GetString(0));

如果不是DateTime而是stringvarchar ),則應考慮更改它。

編輯 :還請注意,您正在使用查詢的兩個不同列來將datatime分配給DateTimePicker ,因此在上一行之后,您將執行以下操作:

date_open.DisplayDate = Convert.ToDateTime(dr.GetString(1)); 

兩者之一必須不正確。 日期時間列是哪一列?

另外,您應該參數化查詢以避免sql-injection:

string Query = "Select * from Customer_New where Cust_Id=?1";
command.Parameters.Add(new SQLiteParameter { ParameterName = "1", Value = val }); 

(請注意,我從未使用過SqlLite,因此代碼未經測試)

Select strftime([date],0) as [date] from Customer_New where Cust_Id=?1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM