從資料庫中讀入後臺程式碼時,時間型別的轉換問題
阿新 • • 發佈:2020-12-10
問題:在從資料庫中往外讀取資料,然後向後臺顯示時,Date型別的資料在顯示時,會出現如下問題:
但在資料庫中的顯示是:
根據網上的說法,這可能是因為C#本身沒有Date資料型別,只有DateTime資料型別,【注:DateTime資料型別相當於是Date的“父類”,因為DateTime可以顯示到秒,而Date只能顯示到天】,所以當我想將Date型別的時間賦值給記憶體中的表時(即:DataTable型別的變數),他會將值的型別從Object預設轉化為DateTime。
對於解決方法:你可以在後臺往記憶體中讀取資料時,將Date資料型別強制轉化為字串型別,這樣在顯示的時候就不會出現以上的問題了。但要注意的是,在寫select語句時,Convert()這個聚合函式需要命名才可以進行繫結。將我寫的主要程式碼貼下來。
private void MenuItem_Click_6(object sender, RoutedEventArgs e)
{//查詢
database db = new database();
SqlConnection con = db.loginmethod();
string strSql = "select supplier_no,cno,purchase_num,CONVERT(NVARCHAR(20),purchase_date,111) purchase_date from 採購" ;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(strSql, con);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.Fill(dt);
if (dt != null && dt.Rows.Count > 0)
{
this .listView_come.ItemsSource = dt.DefaultView;
}
con.Close();//關閉資料庫
}
對於Convert()函式的使用,可以自行百度,在這裡不做過多說明。