2016-08-05 63 views
0

我想插入數據到SQL Server,但我有不同格式的datagridview數據是「dd/mm/yyyy」,並且在我看到我的SQL Server格式後是「 yyyy/mm/dd「,這就是爲什麼我無法使用更新數據的地方。VB.NET不同格式日期插入到SQL Server

在我的SQL Server的數據類型爲Date,而在我的插入查詢

cmd.Parameters.AddWithValue("@Date", Convert.ToDateTime(row.Cells("Date").Value)) 

vb formatsql format

+0

格式僅僅是軟件如何顯示日期給人類。如果DGV列是Date並且DB字段是Date,則只需使用DateTime變量更新數據庫。 – Plutonix

回答

0

格式是無關緊要的。將DateTime轉換爲String進行顯示或將文本輸入轉換爲DateTime時,格式只是一個問題。你應該在你的數據庫中存儲二進制日期,二進制日期只是數字,沒有格式。您還應該在網格中存儲二進制DateTime值。網格如何顯示它們與它們的存儲方式無關。

下面是你應該做的。使用DateTime值的列創建DataTable值,而不是String值。您可以手動執行此操作,或在撥打Fill時讓數據適配器爲您執行此操作。將DataTable綁定到您的網格,並將網格列配置爲顯示日期,但適合應用程序。通過在同一個數據適配器上調用Update,保存對網格所做的任何和所有更改。您可以使用命令生成器來生成操作命令,也可以自己創建它們。無論哪種方式,您都不會自己填充參數,但數據適配器會從DataTable中繪製值。如果你手動創建命令,創建參數會是這個樣子:

myDataAdapter.InsertCommand.Parameters.Add("@Date", SqlDbType.Date, 0, "Date") 

這告訴數據適配器獲得了「@date」參數值從DataTable的「日期」欄。