2016-08-05 50 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的“日期”栏。