![](/img/trans.png)
[英]Assigning Datetime value from sqlite db to datepicker in C# using wpf
[英]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
而是string
( varchar
),則應考慮更改它。
編輯 :還請注意,您正在使用查詢的兩個不同列來將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.