日期时间的InsertCommand.Parameters.Add大小参数

时间:2014-01-30 21:32:42

标签: c# .net datetime ado.net sqlparameters

我需要使用以下语法知道DateTime值的size参数:

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");

无法使用以下语法,因为我正在对数据表中的更新进行批处理。

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime);
adapter.InsertCommand.Parameters["@deliveryDateAndTime"] = *variable*.value;

以下是我需要使用的代码(为清楚起见,缩写)。请注意,在adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");语句中,第一个参数引用相应的SQL参数,而第四个参数对应于该内部该值的数据数据表。

DataTable dt = new DataTable();
foreach (FuelDelivery fd in fuelDelivery.FuelDeliveries)
{
    DataRow dr = dt.NewRow();
    dr["deliveryDateAndTime"] = fd.DeliveryDateAndTime;
    dt.Rows.Add(dr);
}

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HHSqlConnection"].ToString()))
{
    // Create a SqlDataAdapter.
    SqlDataAdapter adapter = new SqlDataAdapter();

    // Set the INSERT command and parameter.
    adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime,10,"deliveryDateAndTime");
    adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;

    // Set the batch size. Zero represents the maximum amt of rows to update at once.
    adapter.UpdateBatchSize = 0;

    // Execute the update.
    int rowsUpdated = adapter.Update(dt);
}

根据adapter.InsertCommand.Parameters.Add方法的此重载,如何相应地设置日期?

1 个答案:

答案 0 :(得分:4)

根据易于搜索的文档,datetime为8个字节。

请注意,您还可以使用首选重载并单独设置源列:

adapter.InsertCommand.Parameters.Add("@deliveryDateAndTime", SqlDbType.DateTime)
                                .SourceColumn = "deliveryDateAndTime";